It takes five votes to close a question on any StackExchange site. It also takes a single vote from a moderator to close a question (which is what happened in the case of your question).
When a question is voted for closure, it first goes into an "on hold" state. The purpose of this state is to provide guidance as to the closure reason and allow the post to be edited to address the issues raised in the closure reason. Questions so edited go into the reopen queue so that the community may vote on reopening them.
We do this because some types of questions are not considered a good fit for the StackExchange Q&A format. That doesn't mean they are "bad" in general or "stupid" questions, and closing them isn't intended to be a punishment. But StackExchange in general and GDSE in particular isn't a forum, and so certain kinds of questions just don't fit.
Among those types of questions are those that are overly broad or for which the answers are primarily based on opinion and not objective data, such as yours.
We close questions aggressively because it's better for the site in the long run. When off-topic questions are left open, not only do they provide a bad precedent, but they also tend to attract off-topic answers that become invalid when the question is subsequently edited, thus degrading the quality of the post and answers for future visitors.
There's a large amount of moderator-close votes here because there isn't as much voting by the community itself. We've been trying things to encourage more active participation by users with sufficient reputation to cast votes, with mixed results. I would really prefer not to have the moderators stepping in so often, but I would prefer allowing the site to fill up with off-topic questions even less, so this is where we are right now.