The problem as I see it is that H1B isn't really immigration; it's even classified as a "non-immigrant" visa, created so that companies can temporarily employ foreign workers.
H1B holders are effectively tied to their employers. Sure, they can in theory find other jobs, but the timeframes and restrictions are very different to those of an actual immigrant.
Immigration of talented people would be fine. I would love to see a merit-based system. But the H1B system is hardly immigration.