It has more to do with voter fatigue. Just look at the year Matthews won. He had a tremendous season, but there’s clearly no reason for him to have won over McDavid aside from the fact voters go “well does McDavid really need another?”. It’s the same thing that happened to Bergeron with the Selke when the league cycled through the guys who were almost as good as Bergeron for a while.
He’s clearly one of the big 4 forwards right now (McDavid, Draisaitl, Kucherov, and MacKinnon), but he’s the only one who was missing major individual hardware. Unfortunately for Kucherov, he has one already, so voters have to be looking at it as “MacKinnon will be 29 going into next season and has never lead the league in scoring. McDavid was hurt this year. He probably won’t win one if we don’t get him one now”. It’s ridiculous that more voters and Kucherov 3rd or 4th than 1st, but it was also very predictable
I think it had more to do with MackInnon being a finalist 4 times before more than anything. Not to say he wasn't deserving this year, but I'm sure the voters wanted to make sure he got his after missing out so many times.
The thing is though, he didn’t even remotely deserve to win any of those years, so it’s hardly “missing out”
17/18 - Given to Hall for carrying the Devils. MacKinnon barely outscored Hall, but that doesn’t matter because McDavid was ahead of both by double digits.
19/20 - Loses to Draisaitl who was 17 points ahead.
20/21 - Loses to McDavid who was 40 points ahead.