The issues are complex - but one of the side affects are indeed artificial suppression of wages for citizens.
We have software titans bursting at the seam with imported labor - yet our domestic universities are also churning out more CS graduates than ever before. Some of these graduates are indeed from foreign countries - but not all.
It's very hard to believe companies need to import labor for commoditized software engineering positions when there are plenty of available workers already here.
We should be importing top-tier talent - the types of folks that are working in complex fields, inventing new fields, developing things that haven't been done before, etc. We should not be importing basic CS graduates and filling basic SE jobs.
H1B's are often cheaper to hire, and do not enjoy the same mobility freedoms a citizen does. In some ways, they are beholden to their sponsor company, and whatever wages that company offers - which may not necessarily be market wages.