(Disclaimer: I think the answers to this question are somewhat site-specific, and I'm not a big SO user; these points may not be relevant to SO).
I think one reason is that we're sometimes not that nice about it. Between the (at best neutral) wording you get on the screen, and what might be some rather barbed comments from other users, the tone can be more "you fool, we already have this one" rather than "hey, great question - actually we already have an answer here!". Not always... just sometimes.
Another is that people do sometimes close questions as duplicates of questions that don't provide a good answer to the new question. It's obviously frustrating when you spend your time wording a question carefully and then some other anonymous soul negates all that effort. It's especially frustrating when you feel your question has been dupe-marked by people who perhaps seem to have been influenced by existing close votes, and aren't taking the time to understand your question - being misunderstood can be enraging.
Also, if your question has already been asked but doesn't have good answers, there's no good way to attract better answers. Bounties don't really seem to create much interest on a lot of sites, and if you're a new user, you won't have the rep to place anyway.
Another problem is the fact that on many sites, closing a question can happen more easily than getting it reopened; The 'High-Rep Cabal' can genuinely be a little defensive on some sites, in my experience.