It's all about cheaper salaries. The truth is that the vast majority of US techies are far superior. But for big box companies with all their managers trying to justify their jobs they actually just want the equivalent of code monkeys and lots of bureaucracy. Americans are truly lazy; we actually want the systems to work and work well so that we can relax and think up new ways to make the system actually easier or more flexible. Code monkeys know the managers only care about numbers so they actually want to make buggy code with lots of simple fixes so as to create the illusion of doing something called work. Fix one error and create two more for next time; this makes your manager happy. These people can be just as smart/lazy/efficient as their American equivalents; they just understand their job is to make their managers look good.
What is happening is that the majority of H1B workers are being hired through labor agencies. They are indeed making a better living than they would back at home. The labor agency is rotating the workers though. There are working more than a 40 hours a week and they know better than to complain because the culture is such that whomever breaks the unwritten rules of silence can expect consequences from their fellow workers/friends at a later time. Your friends and family are punished as well. Think back to the early union days but the union thugs are there to make sure no one complains which would ruin it for the group as a whole.
I have no problem with having unlimited H1B workers so long as they are being paid slightly more than what comparable US workers would cost and are actually getting the benefits they earned according to our labor laws here. So theoretically the number of $100,000 H1B's should be unlimited.
And 90% of the problem would go away if you simply get rid of the agencies and made the tech companies hire directly. They know they are cheating the system and would fear class action suits. They use agencies to buffer their legal exposure.