I'm struggling as to which one of these two sentences is right. If neither, then what is the right sentence?
How much is the fee for a haircut?
How much do you charge for a haircut?
We don’t normally speak of a fee for a haircut. Others have proposed normal alternatives. However, In the UK, the prices are usually displayed in a prominent position, so the question rarely arises in quite that way. Just before paying, a native speaker might say, even though he may know the answer, Right, how much is that then?
(2) is more natural, compared to (1). The most natural query, however, would be How much is a haircut, How much does a haircut cost, or most casually How much for a haircut?
As others have said, we don't normally speak of "fees" when talking about a haircut. You could ask:
What's the price of a haircut?
which would work about as well as your second suggestion, or any of Shawn's alternatives. (In purchasing situations, the question "how much" implies a question about cost, which is why you can simply ask, "How much for this?" without mentioning "price" or "cost".)
I'd like to go one step further, and mention that when we do speak of a "fee", we don't usually use a prepositional phrase. So, instead of asking, "How much is the fee for X?" we would say instead, "How much is the X fee?" as in, "How much is the disposal fee?" or, "How much is the maintenance fee?"
When you're inquiring about an object or service (such as a hairbrush or a haircut), you would generally use the words price or cost, not fee. A fee is usually a surcharge that accompanies some other transaction or service. For example, I might buy a new set of tires, and the place that sells me the tires might keep my old ones, but charge a "disposal fee" in addition to the cost of the tires. An appliance store that delivers a new stove to my home might charge a "haul-away fee" if they take away my old one. Banks might charge "fees" for services (such as a money order) or for penalties (such as overdrawn accounts). So, "How much is the installation fee?" is a perfectly normal question to ask, and would be more common than "How much is the fee for installation?" (although the latter phrasing would not be misunderstood).
Both of your forms are fine, but you should know the shortest ways:
How much is a haircut?
How much for a haircut?
From the context, it is obvious that hair is being cut, so haircut can be shortened to cut:
How much for a cut?
The variations are numerous:
How much do you charge for a cut?
What's a haircut cost? (Note: what's is an informal contraction for what does).
What is the price of a cut?
If I just want a cut, how much does that cost?
Either/both would be perfectly understood, and they are both common enough. But given the choice, I would generally use the second one instead of the first one. It sounds more natural.