Certainly, it's because of money, but such moves are made easier also because of the wide range of untapped markets. For instance, when the Brooklyn Dodgers moved to LA, the entire western half of the US was essentially virgin territory for any professional sports, let alone baseball. And this was only about 50 years.
And the same is still true today. When pro teams such as the Oilers, Sonics, Rams, Whalers, et al., decide to move, they almost invariably move to areas that don't have another pro team of that sport or often times don't have any pro team at all, e.g., Oklahoma Thunder, Tennessee Titans, Utah Jazz, etc.
In contrast, when it comes to, say, football (soccer) in the UK (and Europe for that matter), all decently populated cities (except one as I recall) have very well established professional football clubs, and of course, the more populated cities have several. For the situation to be analogous in the UK, there would have to be large cities such as Birmingham, Sheffield or Bristol without any pro football club, but of course, that's just not true.
I think Worm pretty much nailed it on the head.
Apart from that, there is one relatively recent trend that somewhat slightly lessens the blow, and that is for the new city with the new franchise to take on a new name. Before, the names stayed the same, e.g., Boston Braves --> Milwaukee Braves, LA Rams --> St. Louis Rams, etc. But since new cities (or states in some cases) take on new names now, the jilted city in question could use their old name once again should the league award that city with a new franchise. This happened to the Cleveland Browns. Art Modell (owner) took his franchise from Cleveland to Baltimore whereupon they took the new name "Ravens". When the NFL gave Cleveland a new franchise, Cleveland again named themselves the Browns. At least this way, those spurned cities could build on their past glory in a manner of speaking. Exhilarating stuff, innit?