I know it's fun to say it's all evil corporations, or pure greed, or The Man(tm) keeping you from free TV, but in real life it's a lot more complicated:
For starters, we have a system rather unlike most other countries. Local affiliates are often not owned by the network they air in the US, and each one is localized. This rules out just sending out one satellite feed for all of the stations, allowing a little variance for a few minutes a day. Networks need to protect their local stations, which is not greedy, it's simply good practice. It's one of the reasons why the network has to act when some idiot decides to tell the local station that he's watching the game from far away for free.
The other thing is that the US does not have a national television station aimed at its own people -- that's against the law. That contrasts to most of the world, especially Europe, where the government were the only ones allowed to broadcast to its people until the past few decades, and even then some of the rules are extremely silly as to what can be broadcast (as pirate radio in the UK has attested to for 40+ years).
And it also means something that the US hasn't adopted dishes like other parts of the world. Cable was our way of expanding coverage, so someone deciding to put up their programming in the clear is going to only get thousands of viewers at best -- not the millions that others can get.
Plus, when your country's nearest neighbor is a smaller country with that borders another smaller country, you're going to get more on the dish. Here in the US, we've got two main neighbors: Canada and Mexico.
There's not an easy answer. I'd love it if more channels were available in the US unscrambled (and preferably Ku), but I know the logistics aren't always as easy. Then again, with the Internet and the growing number of FTA channels (in 2005: 99 on 97 West, in 2010: 150+), there's more choices for TV viewing than there has been in a long time.