I have some sympathy for tech companies because Americans haven't been choosing technical and engineering fields over the past decade or so. Plus, it's not like a laid-off person in Microsoft Office support can take a position as an Azure system architect. However, things are changing. First, there is an uptick in enrollment for computer field; Americans want those jobs. Second, layoffs in the technical sector should be making good American talent available. Third, the technical whiz kids who were drawn to the world of Wall Street have seen the meltdown of its mirage-like financial glory, and may be willing to take a job in the real world.
Let me be clear, I'm not a xenophobe on these issues. If we want open immigration where foreign workers are an an equal footing with citizens for all jobs, then let's do that and be honest about it. But the H-1B system isn't set up to do that; it's supposed to let companies fill positions they just can't fill with citizens. As long as there are rules, they should be followed and not exploited by a few companies with good connections in Washington DC.