Xandros9 is spot on.
Writing the code for an app is one thing, and designing it is another. A lot of developers are single-person developers and likely know more about coding than designing (it's why they got into app development after all). A remarkable app needs to offer both a solid code base (to execute the functions it's supposed to) and a great user experience (so users won't get frustrated trying to find out how to make something work, for example). Designing a great user interface can take a lot of time, sometimes more time than coding itself: figuring out where to position elements at strategic locations, how the navigation and content should be optimized and what colors work well together are all factors that come into play here. Additionally, fixing small bugs (such as sporadic scrolling/swiping lag) can take a long time before the issue is pinpointed.
When you're writing an app, you may have this thought nagging in the back of your mind that you have no idea how well it will fare in the store, and it feels like it's a waste of effort to further refine the app. It's easier to just ship out the app (because hey, it does what I want it to do!), even though the user interface may not be the best. If it gets popular, you can always improve it at that point.
My guess is that a lot of average apps come from from new developers or from developers who simply want to provide a function and not bother to optimize it. To have a well-polished, well-designed app requires a keen eye for details. This of course, goes back to the person/team making the app.