We have many words with overlapping meanings: stupid, unintelligent, moronic, slow, dense, etc. However, they do not all mean exactly the same thing.
I would never mock or criticise someone for lacking intelligence, any more than I would want to be mocked for lacking height or good looks.
However, I tend to use the word "stupid" to describe someone whose inability understand something is wilful: it suits them not to understand, so they don't.
Many years ago, I was the team leader of such a person. At the time, she was into her 40s, she had high level professional qualifications, was a householder/home owner, and was completely competent to live a normal life. However, she absolutely refused/failed to understand some very clear and simple standing instructions about the way we handled an important aspect of the job.
I had cause to speak to her about it one day and she literally put her fingers in her ears and started chanting "Not listening, not listening, not listening..." It was quite alarming.
Genuinely, you cannot argue with such people.