The reason why it happens is simple. The architecture of Bluesky discourages this sort of thing (good luck hosting a node) while the architecture of the fediverse, on the contrary, encourages it (three simple endpoints, one database table, activity sender, and you're good).