I currently believe that it is because software engineers are non-substitutable. The hiring manager is not looking for any qualified engineer, they are looking for a very specific engineer who is also qualified. Engineers also are not looking for "any programming job", they want a job at an early-stage startup or in an infrastructure team or to learn a new framework. This is true in many industries, of course, but significantly more so for software.