Short answer? Because for a long time, American engines were crap, sludged up badly, and changing the oil frequently was about the only way to keep them alive. Or, at least, there were enough engines like that to justify the habit.
You'll never hurt an engine by changing the oil too frequently (unless you forget to put the oil in or something). Given the cost of a new engine, it generally does make sense to change the oil frequently.
Newer engines (and especially Japanese and German engines) are a lot better, but the legacy lives on.
Oil degrades from moisture (day/night temperature cycles sucking moisture in and then condensation), and it degrades from running (combustion blowby, mostly). The "3 months or 3000 miles" thing covers both nicely.
Newer cars with assorted sensors are a lot better at telling you when to change the oil, and if you lack that, Blackstone Labs & some other companies offer oil analysis that will tell you how your oil is doing.
However, a Blackstone analysis is $25. If you're running a lot of miles, and have something like a bypass oil filter (a really, really good filter that filters a fraction of the pump output each time), this is totally worth it. If I were putting several thousand miles a month on my truck (14 or 16qt, depending on how much oil you change), I'd totally do this - but I don't put that many miles on, so I change it about once a year. However, for a small 4 cylinder car (popular among this forum), you can do a whole oil change for a few dollars more (or less, if you find a sale).