It absolutely is possible for people to learn complex technical skills (like mechanical or software engineering) in a professional setting. The problem is that the trainees are mostly dead weight for an extended period of time. The employers who hire them need confidence that the trainees will remain with them for long enough to provide a payoff for the initial investment. If the trainees can just leave whenever they feel like it (my friend's experience), the whole thing is a waste of time and money.
I'd be interested to know how this is handled in countries where apprenticeships are more common. There must be some combination of legal and cultural restraints on trainees bailing after the employers have invested in them.