Many possible explanations have already been posted. However, from my knowledge and experience, additional explanations may be:
1. Skilled labor, that are reliable (come to work on time, don't have drug or alcohol problems, etc.), have a strong work ethic, etc. are hard to locate these days;
2. We are now at "full employment" (~ 3.5%). It's now a "seller's market" (Employees can call the shots in some trades and professions). I see "Help Wanted" signs everywhere;
3. For a contractor, I believe that the best "Mark Up On Cost" profit opportunities are for materials (see #1 and #2 above). Not so much on labor;
4. The best businesses are literally swamped with new jobs and projects. Our irrigation company owner wants to retire, but can't. He is very loyal to existing customers;
5. Our home project contractor is "13-months Out" on new work. If we have a new project, we have him bid it today, pay him "X %" for an earnest money deposit, and he'll start work in 13-14 months;
6. Really good contractors are too busy completing projects to return calls, although some are deficient in this aspect of their business operations. "Bidding and Estimating" requires contractor time. As has been explained to me by a few contractors- "This bid is free to you, but it's not free to me!";
7. Most contractors cannot afford the risks of material deliveries delay. Past experiences may have burned them. The materials absolutely have to be "on site" a few days ahead of the scheduled project "Start Date". If not, and weather or other projects cause them to be available to start earlier, and a customer does not have the $$$ yet, has not picked them up, or if there are delivery issues from the material seller, it will cost the contractor $$$.
8. Really good contractors are smart and astute. If they sense that a new project is from someone who may be "Shopping The Bids" for the lowest project bid, they may not want to try to be the "Low Bidder". See #6 above;
Bill