In real life, it doesn't work that way.
Imagine there is an open-source project. Its development is active, many people are contributing patches, all is well.
Then, the maintainer disappears. Forks start to appear, but as there is no centralized development any more, all you can find is a dozen forked GitHub repositories, each with a few improvements - but, without getting your hands dirty, you have to choose only one.
Eventually, someone comes along and rallies together the forks and revives the project. You may think that all is well again, but suddenly the original project maintainers return and continue development in a direction incompatible with the main fork. Neither project's leaders show interest in uniting the forks back together.
What's worse, now you have a bunch of other open-source projects that depend on the original version, and a bunch which depend on the fork. In many cases (e.g. libraries) you can't use both the original and the fork simultaneously, meaning you can't use any components that depend on both forks in the same project. And now you have a huge mess on your hands.
This or similar situations have happened many times before. I can name 3 projects that have suffered this fate off the top of my head, projects that I've been personally involved with.
Fragmentation is bad. Forking should be a last resort.