Or, training does work but the investment is usually so big (not just on the trainer but the lost productivity of the team members involved) that the employee would need to stay employed a number of months/years at least, to recuperate costs. So if the employee resigns before that (since he gets a better offer) you are still in the red.
I've personally had people work for me that didn't actually fit the task, but only because they were quite smart and I was certain they could pick up the domain (any domain) quite fast.
But right now, for example, I'm looking at CVs of student candidates and I'm reluctant to invest in their training because I have a small company and the risk of them leaving after they are trained is high.