Apple took many big strides to make users comfortable with online payments on iOS and made it very easy to do so. As a result, a very large chunk of apps on iOS are paid. On the other hand, Google slowly made it easier and more comfortable with every version of Android that people got used to not liking it. Google also made it INCREDIBLY easy to pirate apps, unlike the great discomfort associated with jailbreaking an iPhone.
Most developers realized the lack of potential to get direct cash from users, so they started removing that limitation and placing ads to monetize their efforts.
Android allowed Google Ad placement pretty early on, so I think that had a bigger impact over the difficulty in getting apps paid for. It's one of the things I hated about Android, so many apps had ads.
Same here. Luckily, it's getting a little more common to have 2 versions of the app (1 paid, 1 ad supported), IAP to remove the ads or even, and I do find this method very strange, a tiny separate paid app that removes the ads from the main.
Developers gotta eat :)
I suppose though if you disabled the data communication for an app then you wouldn't see ads.
But, as you said, developers gotta eat.