The need for this stems from a lack of qualified American workers. I teach at a Big Ten University and can tell you that very few of our college grads are getting “computer science” or “engineering” degrees. Most of them are taking the easy way out through college (e.g. Sociology, Marketing, Psychology) and frying their minds in Panama City for spring break! ;-(
Not so - only 1 in 2 U.S. STEM graduates gets a job in the STEM area. And many H-1Bs displace American workers - who have to train their replacements.