Having a universal app store would be a pain the neck because of all the different platforms that you would have to support. It makes a lot of sense to have one app store per platform. If I'm on an iPhone, why would I want my interface to be cluttered up by Android apps or vice versa.
Nor does an app store mean that the host has to decide who gets in and who doesn't. Some platforms do, some don't. Even something like Debian that runs an app repository (which is what an app store is, sans payment system) has guidelines for submission - the key that differentiates it from the app store is that you can run unapproved code.
So a system where each platform has its own app store and apps that don't go through it are allowed to run on the platform make the most sense. Platforms that do not allow installing thigns outside their model are deficient, but this is a not a knock on app-stores in general.