You're right. What H1-Bs do though is allow companies to replace a worker with full mobility and bargaining power (a US citizen) with one who has limited mobility and bargaining power, which drives down industry wages. Now, if the visa were attached to the person but not the company and were valid as long as the holder has a job, this would be much less of an issue.
Give immigrants the same bargaining power a citizen has and both would benefit.