It has been a common exercise (for good reasons of course), to close, delete or hold questions that tend to show irrelevance to the purpose of one of SE sites.
Quickly closing poor questions, especially before there is an answer, is good. Once a question has answers, it's harder to do something with. Even if the question is off-topic, the asker can either delete the question and try somewhere else or make the question better. If it's made better, it could still be migrated by a moderator. However, if a poor question has poor answers, it becomes that much harder to migrate.
Shouldn't we mentor new users, show them how to format a question, and where is the appropriate site to ask such questions?
All of these tools are available. The Help Center is pretty clear for people (at least, I think it is - if there's anything in there that isn't clear, we should talk about improving it). We also link to relevant Meta discussions. Chat is available for users with sufficient reputation on at least one site in the network. Meta is also there.
I do agree that Meta should be more available to users with low reputation, but that's been status-declined more than once on Meta Stack Exchange, so there's nothing more to do there.
I recall in my university, we had a buddy system, for new students to answer obvious questions until the new students pickup speed and become mentors themselves.
Keep in mind that we're all volunteers. Even the moderators are volunteers. I answer and moderate in my spare time. I don't know about other people, but it isn't that hard to understand Stack Exchange sites if you spend 10 minutes reading the Tour and digging into the Help Center. I don't think there's a need to mentor people.