I understand the need to make questions clear when asking them and
agree telling the OP to make the question clearer, if it is not, is a
good thing. But can't this be done without locking the ability to post
potential answers?
If the question is unclear, then it is rather unlikely to get a high-quality answer and we don't want this site to be a repository of low-quality questions and answers.
On another hand, I agree with you that sometimes we, as a community, lock questions too quickly. I myself have answered a few questions that simultaneously got put on hold as "unclear". I agree that the mechanism is not perfect. However, notice that every question can be re-opened, or even un-deleted: you just need enough community votes, or a moderator for that. So if you feel that some question should be re-opened, then you can always (a) put this in comments, if there is an active discussion under the question, (b) discuss it on chat (mods often visit chat), (c) discuss this on Meta, (d) flag the question for mods' attention asking to re-open it.
Say for example question seemed unclear to the mod, but was understood
by someone who potentially knew the answer, all that is being achieved
by putting the question on hold is stopping the answer from being
submitted. And if the question seemed unclear to the mod, and was
unclear to someone who did know the answer, then no answer would be
submitted anyway, and there would be no need to put the question on
hold.
First of all, it is not only the mods who can put questions on hold. I'd argue that in most cases questions go on hold by gathering community votes. So in most cases you need at least three people to agree that some question is unclear. In most cases, if it is unclear for three people, then it is unclear.
Furthermore as an extension to the first scenario where a potential
answer is blocked if the OP did not edit his question or forgot to,
then there would be no way of answering the question forever for the
potential benefit of all others who might face the same problem, which
in my opinion is a gross failure of the philosophy of this website and
what it tries to do in helping people through knowledge sharing.
If OPs didn't bother to edit their question that were unclear, i.e. do not care about their questions, should we have to care about that? The community does not benefit by collecting answers for unclear questions. Moreover, if an OP does not care about their question but you feel that behind it there is an interesting question to be answered, you can always ask the question, and potentially answer it yourself. Last time I did this I got +156 votes for the question; moreover as a result the OP has edited the original question and it got answered.
So my question is, what advantage does putting unclear questions on
hold actually achieve over just asking the OP to make the question
clearer?
Making the question clearer is the advantage. Moreover, it is a mechanism that guards the site from being flooded by low-quality questions, which would lead the site to start looking like the "SPAM" folder in a mailbox and become useless.