Speaking for myself I don't upvote question very often. It's not because I'm bitter, or in some personal vendetta to withhold points from other users; nor because I don't read them or don't care. I just think upvoting a question should be reserved for actually good questions.
Most questions that show up here show absolutely no effort from the user, no research, incomplete information, poor 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.
Not that the question is bad in and of itself, doesn't justify downvoting either, but it feems like using SE as a personal helpdesk, rather than a long term knowledge database, making them unlikely to be useful to anyone else.
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.