There is no shortage of engineers in the US; in fact, many engineers are involuntarily unemployed. There IS a shortage of engineers who will work for wages as low as the H1-B workers.
I agree that the quality of the H1-B engineers seems to be as good as that of citizens (which at least in the case of software engineers isn’t very good, in my experience). But the H1-B workers are not paid the same, which I believe is mostly because they cannot switch jobs as easily as citizens.