Sharing button will be available when your sharing setting is either Private or Public Read Only for an object or related object. For example, Sharing button may appear on Account even though sharing model for Account is Public Read/Write, if your sharing setting for Opportunity is Private or Public Read Only.
Sharing button may not visible for particular user, while other user able to see that button in the same page layout. Some may think, user not able to see the button because do not have permission in the profile assigned, that is not correct.
If user is none of below criteria, user will not see the button, although user able to access the record. Sharing button will be shown if user in following criteria:
- Record owner
- User in a role hierarchy above the record owner, and
- User that has been granted with “Full Access” sharing
But if user is one of above, but do not see the button, check this:
- Object is child record in master-detail relationship, see sharing setting = Controlled By Parent
- Sharing button is not added into Page Layout
Lastly, you cannot manually share a contact which not linked to an account.
Reference: Why can’t I see the Sharing button on a record?