The first reason is that the employer knows his worker is dependent on him – he can thus get away with a lower salary, etc... The second reason it is bad is that you cannot quit and start a start-up – if you do not have a sponsoring company you must be out of the country in 60 days.
The third reason is that it deters people from going to the USA. I really want to go to California next year – but with that Visa system it is not going to happen (probably going to London). Compare the US system and the UK's General Highly skilled Visas (e.g. http://www.workpermit.com/uk/uk-immigration-tier-system/tier...) – it is really no fuss and valid for a time period.
There are already more than 5 million Mexicans in the US. Would 1 million engineers and scientists really be a bad thing?