My guess is regulatory capture, corruption, and knock-on effects from corporations being granted the rights of people,
including money equaling free speech (see Citizens United). There's more money to be made if there are lots of different contractors and subcontractors that can all take a cut, and so the politicians are paid off through campaign contributions to allow the inefficient system to continue. Everyone involved makes lots of money, more than if they were vertically integrated and did construction efficiently, except for us taxpayers who are footing the bill, of course. It's basic rent-seeking by the construction industry.