While mastodon.social would ensure you are always on the latest branch of the mainline Mastodon server software as it's the 'flagship' maintained by Mastodon's main/original developer, its large size has caused an increasing number of instances to mute (still allowing their users to follow users on mastodon.social, but not to include its posts in their 'federated timeline'), or outright block the instance (meaning none of the posts on mastodon.social are accessible to the instance's users at all). Reasons for these decisions can include but are not limited to:

- the instance has grown too big and thus some consider it counter-productive towards the federated nature of the protocol

- disagreement with the direction its main developer / maintainer is taking Mastodon, such as intentionally hiding the local timeline from the official iPhone app

- some consider it under-moderated, or not responding quickly enough to reports

- disagreement over its content moderation guidelines

- in case of a mute, it could also be not wanting their federated timeline to be flooded with primarily mastodon.social posts

Lack of federation between these instances and mastodon.social could be a reason not to pick mastodon.social. (Similar situation applies to mastodon.online btw, which is a spin-off server of m.s.)

Another reason to pick a different instance could be not wanting to use mainline Mastodon software. For example because you want to run your own instance on limited hardware (Mastodon can get a bit resource intensive), don't like Ruby, miss certain features, don't like the front-end (though alternative external front-ends to Mastodon do exist), or some other reason.

Personally I've switched my primary use over to an account on an instance that runs Mastodon Glitch Edition, also known as Glitch-Soc (https://glitch-soc.github.io/docs/), which is a compatible fork of Mastodon which implements a bunch of nice features such as increased post character count (Mastodon defaults to 500 characters per post, Glitch-Soc supports increasing this in the server settings), Markdown support (though only instances that also support HTML-formatted posts will see your formatting; mainline Mastodon servers will serve a stripped down version of your post instead), and improved support for filters / content warnings / toot collapsing, optional warnings when posting uncaptioned media, and other additional features.

Another alternative Mastodon fork is Hometown (https://github.com/hometown-fork/hometown) which focuses more on the local timeline (showing posts only from your own instance) with the addition of local-only posts, to nurture a tighter knit community.

Aside from Mastodon there are other implementations of ActivityPub which can still federate with Mastodon instances, such as:

- Misskey (https://github.com/misskey-dev/misskey)

- diaspora* (https://diasporafoundation.org/) (which AFAIK inspired Google Plus back in the day)

- Hubzilla (https://hubzilla.org//page/hubzilla/hubzilla-project)

- Peertube (https://joinpeertube.org/) (focused on peer-to-peer video distribution)

- Friendica (https://friendi.ca/)

- Pleroma (https://pleroma.social/)

- Socialhome (https://socialhome.network/)

- GoToSocial (https://github.com/superseriousbusiness/gotosocial)

- Pixelfed (https://pixelfed.org/) (which started as a sort of federated Instagram alternative) and more.

Fediverse.party (https://fediverse.party/) is a nice way to discover various protocols that make up the bigger Fediverse.

Instances.Social (https://instances.social/) can also be used as an alternative to find instances, though I believe it is limited to Mastodon-based instances.