Apple Sets the Rules
The simple answer is: Apple requires it.
A (very) Brief History of Apple's Policies
The longer answer is a bit more complicated, but we'll do our best to explain it (at least as we understand it). Back when Apple first launched it's App Store, the rules surrounding what apps were allowed and what apps Apple accepted/rejected were fairly simple. Fast forward a decade later and there are roughly two million apps available for download in the iTunes Store. Apple has been known to revise it's Developer Terms & Conditions fairly often, but in June 2017 Apple made the announcement that it would be implementing policies to help combat the onslaught of SPAM apps in their App Store.
This announcement took the Apple Developer community by storm, inciting controversy and some developer backlash. Code for America even wrote a blog post decrying the death of government apps. Well, Apple responded and revised its policies allowing platforms like ours to continue without being in violation.
One policy remained in effect, however. The effect of that remaining policy is that government agencies must publish any apps they distribute publicly through their own Apple Developer Account. While this does place additional burdens on cities, counties and special districts, Apple has made it as painless as possible, even waiving the $99 annual fee!
It's Apple's Platform
The bottom line is that Apple has created an incredible ecosystem, resulting in millions of apps created by thousands of developers. They like to keep a tight ship and since they control what apps get rejected and what apps get accepted, we all have to play by their rules. And when you take a step back and look at what they have required developers to do in order to publish apps, it's not all that bad. They've done a tremendous job of keeping the App Store free of SPAM and at the same time optimizing a user's experience while using their hardware.
We love Apple (and Google, of course). We're happy to be good citizens in their backyards and so should you!