My company just underwent some major changes. We had open positions before, but we recently had a number of people hit their 1-year cliffs and leave, so we now have a lot of open positions and I'm one of the people that's been designated as a hiring manager. I can tell you that we have zero intention of hiring H1-Bs. If someone already has the paperwork from a previous job, we'll consider them, but we need people now and aren't willing to sponsor.
And yet HR still insists on writing the overly-narrow job descriptions that everyone I know loves to hate. I've tried, on multiple occasions now, to get the descriptions changed to more of a "We use x, y and z and are looking for someone smart that either knows them or can learn them fairly quickly," but every time we test it out, they find ways to sabotage it (I was told, verbatim, "Github is too expensive for an experimental job posting, so we only posted it to Dice").
This exposure to the HR recruiting process has left me convinced that the majority of the problem isn't H1-Bs or disingenuous companies but, instead, HR that's out of touch with the way that talent looks for jobs these days. Because it's clear that there are people who want jobs and don't have them and jobs that want talent and can't find it.