Account, opportunity, and case teams
Key Takeaway
Pick account, opportunity, and case teams when access depends on who works on a specific record. Teams add access and never take it away.
Account, opportunity, and case teams are a per-record way to share. A record owner gives a group of users access to one specific account, opportunity, or case, and gives each person a role.
What a team is and when to pick one
A team is a group of users who work together on one account, opportunity, or case. The record owner builds a team for each record they own. The owner sets each team member's access, so some team members can have Read Only access and others Read/Write.
The owner can also give each team member a role, such as "Executive Sponsor". Account teams and opportunity teams share the same team member roles.
If access depends on who works on a specific record...
You should pick teams, so you don't need to share the record with each person by hand or have an admin build public groups and sharing rules for every team. Account and opportunity teams can be more efficient than those two options.
If you need team-style sharing on custom objects...
You should use Apex sharing, because teams are only for accounts, opportunities, and cases. Apex sharing is a programmatic solution rather than a declarative one.