Let's have a look at some key factors.
Average H1B employee makes a salary of around $86,000 per annum (source) and most places this average at nearly $40,000 above median income of their locations.
Also consider this US DOL sets a minimum wage of $60,000 per annum for a H1B and add legal fees borne by employer ($5K per year), also add the travel and relocation fees from india of $10K. To hire a junior programmer with minimal experience in a small town, it will cost an employer at least $75K per annum.
American college Graduate Salaries
American college graduates are feeling the pinch more than ever in the last few years, they come out of college with more loans and struggle to make ends meet. Average college student coming out of a college in US makes less than $50K per annum (source). Then why aren't US students flocking to get these jobs?
As a good guideline, kids who enjoy mathematics and reasoning tend to enjoy programming and software development. While countries like India are very strong in Mathematics and Science, US is seeing a decline and considered below average by annual exams. (source)
Stress and work-life balance
Software and IT industry is considered high stress due to its ad hoc work schedule, sharp learning curve and critical decision making. Not everyone will enjoy software development and the challenges with it. Most American's expect a job with flexible work schedule and work-life balance, which sometimes can be tough to come in this industry.
Blaming wages will help pass some laws and get some votes, at the end jobs might go to countries like India when H1B's go back to their home countries. Unless there is a fundamental shift in education and hardwork, US will struggle to match H1B employees.