This may be the case in some industries, though perhaps these industries have a lot of companies who abuse the system.
My office recently hired a new engineer through the H1B visa program. In our case we treated him as an "American" worker for all intents and purposes -- mainly because: (1) he was a recent graduate of a local engineering school right here in the U.S.; and (2) he had done an internship with one of our biggest clients, and came highly recommended.
What I found so interesting -- at least in our case -- is that hiring the H1B visa worker actually costs MORE than hiring an American. For one thing, my company must pick up the legal costs of sponsoring him if/when he applies for a green card. Secondly, labor regulations (I don't know if these are state or Federal regulations) prohibit us from paying him less than the industry average for his professional classification.
And who checks up on that? NOBODY.
So ... why hire an H1B ... and don’t tell me that there aren’t any Americans out there to fill the job. BTW I have had the privilege of training my H1B replacement more than once in the tech industry. I became friendly with one and asked on the sly what they were paying him ... it was 1/3 of what I as getting.
How many hours per week does this guy work? The way companies game the system is as follows: A female Indian programmer told me the Mother Ship put her husband on salary, worked him 70-80 hours a week, but only billed the client for 40.