Hiring someone as an employee has a large administrative cost, as does firing. Whereas contracting a project has very little overhead.
Additionally, firing someone is hard from an emotional perspective. It will damage team morale and puts the person you fired in a bad position.