Actually I would argue companies just don't want to pay the wages that Americans would expect for the labor. Raise the pay, you'll see those positions get more qualified candidates and then they will be filled.
Anecdote...I had a random chat with a hiring manager and he commented he can't hire the right developers. Developers think too highly of themselves and ask for too much money...I had no sympathy for him.