Outsourcing is no different in hiring someone full time in that if you pick the wrong person/company, or you do not manage them correctly, they will perform poorly.
The choice to outsource has little to do with quality - they both can, and do produce the same average quality. The choice to outsource has more to do with what type of company you are.
If you are small company with product turns every 5+ years, you can not afford to have a bunch of engineers sitting around eating up the fixed cost line - you hire a firm like ours for the 6 months it takes to develop the product.
If you are pre-funded start up, you have no choice but to work with a company that will accept "in kind" payment - again a company, not full time employees.
If you are a funded company, you have no time to put a team together with CAD, lab, processes, etc - you hire a company, and they start the next day - likely they already started with "in kind" work.
If your a big company, you already have a big team, with a LAB, lots of CAD and plenty of mature procedures. You do not need a product development company.
To answer the original question, yes company do hire product development companies. We have been in business for 12 years, done more than 1,000 project for over 200 customers. There are plenty of other companies just like us.