Speaking for myself I don't upvote question very often. It's not because I'm bitter or in some personal vendetta to not give points to other users, nor because I don't read them or don't care, I just think upvoting a question should be reserved for actualy good questions.
Most questions that show up here show absolutely no effort from the user, like incomplete information, bad language (I know many users first language is not English but the worst offenders often seem to be native speakers), walls of text, duplicate questions asked over and over again; or the large majority very simple or very basic beginner questions.
Not sure if this is correct from my part but, the most frequent reason I do not find a question upvote worthy though, is because most just seem too localized or specific to the users project or work, and with very narrow applicability outside that very question, making them unlikely to be useful to anyone else.
Not that the question is bad in and of itself, doesn't justify downvoting either, but I just find most very undescoverable, and highly unlikely to show up in anyone else's search in the future.
I would consider the best questions to use the most 'generic' terms, like 'how do I solve general problem X' or 'how to achieve certain effect Y'; instead of 'how do I do specific thingy from my project' or 'how do I fix my problem in this screenshot'.
Now I rarely see a question getting closed for being Too Localized, and since this is very large majority of questions here, if we don't answer those BSE would quickly become a pretty empty desolate place, failing the basic mission of helping users; but I just don't find those questions upvote worthy either.