Federation is when instances exchange information. For example, you posted to lemmy.ml, while using lemmy.world, and I'm seeing this post and replying to you from lemmy.max-p.me. That's federation in action, in this case with 3 instances involved. It runs on my server entirely in my control, I'm the admin of it. It's completely independent from lemmy.ml and lemmy.world but they all talk to eachother.
An instance is one website running lemmy. Lemmy.ml and lemmy.world are two examples. There's hundreds of them, all operating independently and sharing information.
Defederation is essentially when federation is cut off from a given server, think banning an entire instance essentially.
The fediverse is the name of this whole system: it's federation and universe smushed together, fediverse.
Cross-platform instances would be instances that can talk to multiple platforms. For example, Kbin lets you browse Lemmy threads and Mastodon microblogs from the same place. Mastodon users can somewhat see Lemmy posts. I've never seen it referred to as cross-platform though.
But why are there so many instances and from what I have seen they are mostly similar to each other in terms of features and such? Like why would one use lemmy.ml over lemmy.world or vice versa when they are federated?
Because instances are hosted by individual hobbyist and not a company that makes profit, the amount of data that an individual instance can store and process is much more limited by their hardware. Spreading the load across numerous hosters allows for a higher capacity of data storage and therefore total lemmy users. Because of this i encourage you to use more niche instances if they suit you.
As for why one would choose a particular instance over another; you'll find the each lemmy instance typically has its own social ecosystem and political consensus, because of this certain users will gravitate to the one that suits them best. For instance, lemmy.blahaj.zone is very LGBT heavy with an emphasis on the T, lemmy.world is quite liberal, lemmy.ml is typically socialist, hexbear.net is communist, and lemmy.dbzer0.com is pirate. While many of these are federated with eachother you will often notice an emphasis on certain subjects on an instance by instance basis
I wanna add, that these niche hobby servers do have a higher risk of dropping permanently if the owner decides they don't enjoy it. No a real reason not to use them but good to know regardless.
If you doesn't understand the concept of federation very well, I believe it is best to pick a more general instance that doesn't defederate much other. This way you will be able to explore community for many different instance and if you find a community to your liking, move there. Account migration is easy btw lemmy instances.
There are reasons already outlined, but beyond that, even if they were all equal and users picked them completely randomly, it prevents any single instance and therefore any owner or company hosting them from taking over the whole thing.
For example, with Twitter or Reddit, if they decide they don't like something and shut it down, that's it, it's gone. And with everyone locked into the ecosystem, you can't really just pack up and leave.
The fediverse on the other hand is essentially immune to that: the community can simply be moved to another instance, and users can migrate to different instances while still accessing the same content.
For example, lemmy.world defederates hexbear and lemmygrad, but I can access all 3 of them at the same time from my instance. There's also weird cases like lemmy.ml defederating ani.social, but I still can access those two from my instance as well no problem.
The admins are empowered to cut off instances they don't want on their server (for example, many don't want anything illegal or legally grey because they just don't want to deal with legal problems) and curate the experience for their users, and if it's not for you well you can go elsewhere without missing out.
Then there's fun stuff like different legal jurisdictions: Reddit being a US company has to comply with US laws even if the user is European or Australian or Chinese or Japanese. With the fediverse, someone local to all of those can make local instances without being completely cut off from the rest of the network, only subsets of it but still access things like programming.dev.
And thus, nobody can really take it away from us. Nobody can really shut it down. It's also somewhat censorship resistant because now you can't just ban Reddit, you have to keep track of and ban every Lemmy/Kbin/Mbin/Mastodon/Pleroma/Friendica/PeerTube/Sublinks instances in existence.