Google is your friend :)
In any case, the difference between a role and a group comes from computer security concepts (as opposed to simple resource management). Professor Ravi Sandhu gives semantic coverage of the semantic difference between roles and groups.
http://profsandhu.com/workshop/role-group.pdf
A group is a set of users with a specific set of permissions assigned to a group (and in transit, for users). A role is a set of permissions, and the user effectively inherits these permissions when he acts under this role.
Usually your group membership remains at the time of your entry. On the other hand, the role can be activated in accordance with specific conditions. If your current role is “medical staff,” you may see some medical records for this patient. If, however, your role is also a "doctor", you can see additional medical information, in addition to what a person who has only the role of a "medical staff" can see.
Roles can be activated by time of day, access location. Roles can also be improved / associated with attributes. You can work as a "doctor", but if you do not have the attribute or relationship of a "primary doctor" with me (a user with the role of "patient"), you will not be able to see my entire medical history.
You can do all this with groups, but again, groups tend to focus on identity rather than role or activity. And the security aspects just described above tend to be more consistent with later than with previous ones.
In many cases, to use the classification of things together (and nothing more), groups and roles function identically. However, groups are based on identity, while roles are designed to demarcate activity. Unfortunately, operating systems tend to blur the difference by treating roles as groups.
You see a much clearer distinction with application or system level roles - porting an application or system semantics (for example, as Oracle ) - as opposed to "roles" implemented at the OS level (which are usually synonymous with groups.)
There may be restrictions for roles and role-based access control models (e.g. something like this):
http://www.lhotka.net/weblog/CommentView,guid,9efcafc7-68a2-4f8f-bc64-66174453adfd.aspx
About ten years ago, I saw some attribute and relationship-based access control research that provides much better granularity than role-based access control. Unfortunately, I have not seen much activity in this area for many years.
The most important difference between roles and groups is that roles typically implement a forced access control (MAC) mechanism. You cannot assign yourself (or others) to a role. This makes the administrator role or engineer role.
This looks like UNIX groups, where the user can / can assign himself to the group (via sudo, of course.) When groups are assigned according to the security development process, the difference is a little blurred.
Another important characteristic is that true RBAC models can provide the concept of mutually exclusive roles. In contrast, identity-based groups are additive — the primary identifier is the sum (or mix) of groups.
Another characteristic of a true RBAC-based security model is that elements created for a specific role usually cannot be accessed in transit by those who are not acting under that role.
On the other hand, with the Discrete Access Control (DAC) model (the default model on Unix), you cannot get this type of guarantee only with groups. BTW is not a limitation of groups or Unix, but a limitation of identity-based DAC models (and in transit, with identifier-based groups).
Hope this helps.
=========================
Add some more after seeing Simon's answer with a good answer. Roles help manage permissions. Groups help manage objects and objects. Moreover, roles could be seen as “contexts”. Role “X” can describe a security context that governs how subject Y gains access (or does not gain grip) to object Z.
Another important difference (or ideal) is that there is the role of an engineer, a person who develops roles, contexts that are necessary and / or obvious in an application, system or OS. The engineer role is usually (but not required) also the role administrator (or sysadmin). Moreover, the true role (not intended for a pun) of a security engineer, not administration.
This is a new group, formalized by RBAC (even if it is rarely used), which, as a rule, is not present in systems with group support.