Just because you've received a good answer doesn't mean you've received the best answer. If you're asking asking about code, someone might be able to write better code. If you're asking about a proof, someone might provide a more elegant proof. If you're asking about a workaround, someone might be able to devise a more efficient workaround. And if you're asking about a language like English or Italian, someone might provide a better way to say something.
Moreover, the SE community is a global community. Depending on what time of day you post your question, a good portion of the regulars in that community might be asleep for the next four hours or so.
I suppose it depends on the nature of the question, but I often recommend waiting at least a day before accepting an answer.
I've seen at least one case where someone asked a question and got a quick answer that was promptly accepted just a few minutes later. However, the answer was a bad one. It accumlated several downvotes over the next couple of days. Sadly, the O.P. never logged on again, so that person seems to have gone on their merry way with bad advice.
There are good reasons to leave a question open for a day or so, even if you get a helpful answer right away. Some may be more likely to look at a question if it's still "unresolved." You might be more likely to get a few more answers (and perhaps one of these will be even better than that initial answer). Also, it gives others in the community time to weigh in, perhaps with a vote or a useful comment.
I realize that accepted answers can change if someone gives a better answer later on. But there's something about that green checkmark that seems to say, "Okay, I've got my issue resolved – there's no need to investigate here." I just don't see the need to rush things so quickly when so many others might be willing to mull over your problem and give feedback as the possible solutions unfold.
I also think that accepting answers in a matter of minutes instead of hours might contribute to a culture where users race to give quick answers as opposed to taking the time to compose thorough answers. I imagine it would be discouraging to spend a half hour solving someone else's problem, only to realize they've already accepted an answer before you were done composing yours – and the question isn't even an hour old yet.