The reason is that they have an established user base, and there is an app store, which is very curated.
People would be more than willing to pay for apps on that app store.
Not so many developers are willing, though. The thing is, to publish on the app store, the source code must be publicly available on for instance, github.
If they allowed app developers to sell truly commercial software, ElementaryOS could be a self growing machine, and they could give away the OS for "free" and keep the OS open source.
Maybe it's not as "pure" as what they are doing now, but on the other hand they could reach so many more people if they had more monetary resources.