From the comments provided by @fbueckert, a more recent post that does a good job of addressing this issue and explaining the reasoning behind the existing implementation: "Why isn't providing feedback mandatory on downvotes, and why are ideas suggesting such shot down?"
I still may not completely agree with the conclusions and explanations given, but it's extremely useful in providing some much-needed clarity on the topic.
Bring out your dead and call in the Necromancer
Yes, I know this request is more than 9 years old. I realize that, at this time, it's in a status-declined status. I understand that the number of upvotes would seem to indicate that it's not a very popular suggestion. I seriously debated whether to post the following tirade as an answer here or as a new question entirely. In the end, I decided a new question would probably be considered a duplicate, so here we go...
TL;DR - Personally, I like the idea tremendously, but with some (albeit, significant to the OP's suggestion) alteration:
I don't think this should be a part of the up-vote process. Up-voting should be a completely painless process. Firstly, the up-vote is usually enough for most users as an indication that they've posted something worthwhile. Additionally, there's rarely a reason to explain someone's reasoning behind up-voting. They think the question or answer is well thought out, well constructed, etc. and, unless the up-voter feels the need to provide some additional encouragement, adding complexity to up-voting just means that fewer people will do it. Explaining your up-vote doesn't actually provide the poster with anything truly "helpful" because they don't need to do anything to improve what they posted. They got the "warm-fuzzy" feeling, and they're going to move on.
Down-votes, on the other hand, should implement this feature as something which is absolutely mandatory. Down-voting shouldn't be as easy and painless as up-voting. It should require some additional thought and effort. If you're going to criticize someone's question/answer - more importantly, if you want someone to improve the way they ask or answer questions on Stack Exchange - it's important to offer some form of explanation or reasoning why you believe the post doesn't meet the standards.
One of my biggest frustrations - my "Stack Peeves", if you will - with regards to the voting process on Stack Exchange is down-voting. I rarely avail myself of my down-vote privilege unless the question or answer is exceedingly bad - uncited/unfounded opinion/speculation (except in those rare cases where it's somehow appropriate), zero research/effort, etc. I agree that down-voting is a very useful mechanic and helps others to gauge the quality of any given question/answer, but it's current implementation really only serves as a discouragement - especially to new users - unless the individual down-voter is kind enough to take the time to leave a comment.
Unfortunately, most of the time down-votes are cast in a "drive-by" fashion and leave the poster wondering, "what did I do wrong?". Let me see if I can answer some of the more common (that I've seen) arguments against this feature:
"If it's a bad post, the poster should go look at the multitude of resources that are already available to figure out how to write a better question/answer"
I'm certainly not saying that's wrong but, as I'm sure many here know, it's often difficult to see the errors/problems in your own writing (or programming code) until someone else (a person, or a debugger) shows them to you. Once it's been pointed out, it's usually glaringly obvious and you frequently know exactly how to correct the issue. But, until then, you're just left frustrated as to why it's "broken".
"But, the onus should be on the poster to figure out why it's a bad post"
(Jeff Atwood's point #3)
I don't know about you, but that rarely works for me IRL. If I come home and see my wife is visibly upset, I begin going through a litany of reasons why in my head: maybe it has something to do with the kids, maybe it's money, maybe - and probably more likely - I did something stupid. I ask her what's wrong, and she says, "nothing". Now, in this situation, I have access to some additional cues based on her body language and tone: If she says it in a "frosty" tone, I can assume that it's most likely because of something I did. If she seems exasperated, it very well could be that the kids are working her last nerve.
We don't have any such cues here in this text-based communication medium. They don't see the burning glare in your eye as you click that down-vote button. They don't hear the frustration in your voice as you grumble something like, "another stupid noob that just wants us to hand them the answer without doing any research themselves".
Your down-vote could have been cast for any of a multitude of reasons, but without some sort of context, the poster can't automatically make any assumptions and doesn't have any good point of reference for starting their own investigation into what it is that they need to fix.
"But, I shouldn't have to waste my time with extra clicks"
Well, my only response to that is that you "wasted your time" reading the post, you considered it worth "wasting your time" to down-vote so, really, what's one or two extra clicks? If you really feel passionate about it, there can be an "Other" option for you to provide a specific and detailed explanation of your issues with the post. Otherwise, you can simply choose one of the canned options and move on with your day.
"But, I don't necessarily want my username shown as a down-voter"
Well, while I personally feel it would be best to have the down-vote explicitly and expressly associated with the user that cast it, this implementation can certainly accommodate anonymity. There isn't necessarily anything that inherently "ties" a user to their down-vote in this proposal, although it would be possible to either include or exclude that information based on the desired implementation.
Examples & Mock-Ups of Implementation
I've come up with a few very rough mock-ups of UI/UX changes that could be used to incorporate and facilitate such a feature's additional information.
In the end, I envision a user might see something like this when mousing over the down-vote button:
If they actually click the down-vote button, they'll be prompted to choose a reason. These reasons will most likely need to be customized on a per-site basis, but Aarobot's response above gives some good examples/guidelines. In this mock-up, the Submit button could be disabled unless the user selects "Other", then it enables once a certain number of characters is entered (like with comments). If the down-voter chooses one of the other options, there's an "automatic" submit once the radio button is clicked.
There could also be a checkbox option to "Include my username" for those who want the down-vote openly attributed to them.
All of this would pretty much necessitate a slight update to the current reputation interface as well to display this new data point, but it could be a very minor change (note the reason at the far right of the down-vote line-item):
Additionally, one could possibly expect an additional link at the bottom of each post to show any existing down-vote reasons:
Okay, I've wasted way too much time on a long-defunct and obviously unpopular suggestion, but I wanted to really give this some "meat". As I said, it's extremely frustrating for me, personally, to get a down-vote with no additional feedback. The best I can do in those cases is ask for an explanation in the comments and hope that the person who cast the down-vote comes back and complies with my request. Very few people - again, especially new users - are going to go through the additional effort to research "what makes a good question/answer", then go through a critical analysis of their own post to see where it doesn't match those guidelines, and then figure out how to adjust the content of the posts so that it does meet the criteria for "good" (or, at least, "acceptable"). And, that's if they can figure out the "why" in the first place without having it shown to them. Whether out of pride, ignorance, or any of the many other reason for someone to have trouble seeing their own faults, that is often the biggest challenge.
Requiring some sort of reason - whether a canned response or a more detailed explanation - would help tremendously in alleviating that initial hurdle and help to more quickly improve the quality of questions and answers with a minimum of effort on the voter's part. It just doesn't make sense to me not to include this as a part of the down-voting process. This suggestion may never see the light of day, but I will still say it's definitely one of the more needed features for Stack Exchange overall.