It is weird, but it is also natural for many speakers of American English. To my (American) ear, it sounds like something a young child might say naturally, or that a thirteen year old (who has not learned more polite rhetoric) might say.
The grammar of the question is perfectly correct. The weirdness comes from the question's sarcastic, authority-questioning tone.
Literally, the question just asks for the name (or role) of someone who said something. But it implies a lot more:
- Whoever it was implied that boys and grown-up women can't (or are not allowed to) believe in fairies.
- (1) implies that whoever it was claims to be in a position of authority. They can say what other people are not allowed to do.
- It implies that the person being spoken to is not the person who decided the issue.
- A common context (for questions like this) is that the person speaking is arguing with the person being spoken to.
- The question implies that the issue was decided in an authoritative way (based on "who said [so]"), not in a reasonable way that anybody could figure out.
- (5) implies that the person being spoken to could not have reasonably figured out what they just said.
- (6) implies that the speaker is not willing to listen to any rational arguments on the subject by the person being spoken to.
- The question implies that the person being spoken to does not have the authority to say what they just said.
- On questions where the person being spoken to cannot "cite chapter and verse" of an authoritative decision, it is insulting to imply that someone does not have the right to say what they just said.
- American culture has a profound respect for individuals' religious beliefs. No federal judge has the constitutional authority to say that any American is not allowed to believe in fairies. The question is therefore implying that no human has the authority to make the decision.
- The question is therefore not actually asking for an answer.
- If the question is answered, the asker is likely to either ignore the answer, or argue with it.
- Disregarding what someone says is also insulting. This question promises to be followed by that kind of insult.
So this is not really a question that is meant to be answered. Instead, it is at least three kinds of insult, and a refusal to continue constructive conversation on the topic. No wonder it seems weird.