Everything below is my opinion/experience, and what I often do. This shouldn't be treated as policy, but more how I think about voting
Tl;dr: people often decide based on their opinion of how good the question/answer is
Questions on most Stack Exchange sites have to be seeking facts and not opinions
Yep, that's correct.
Reputation in those same sites is based on people's votes, which are their opinions
Yes, but you are IMO missing something important. Votes (at least how I use them) is my opinion of how good the question/answer is. I don't think these two are mutually exclusive. Voting is always (somewhat) subjective, but it is (often) one's opinion how good a question (or answer) is.
I vote for a number of reasons, but the most common is on the tooltip (hover over the up/down vote buttons):
Upvote:
This question shows research effort; it is useful and clear
Downvote:
This question does not show any research effort; it is unclear or not useful
Of course, people also vote for other reasons (for one, sometimes people downvote a totally off-topic question). Sometimes people vote for other reasons too, of course. Sometimes people vote up a question purely because they find it interesting*.
*I'm not saying to upvote bad questions, nor to judge these reasons, but they are some reasons for voting up/down