It’s because of money and player engagement.
Getting expansions out at key times of the year generate big moolah for ActiBlizz, so sticking to those release windows/dates ensures maximum profit.
Secondly, it’s also the issue of player retention and engagement. Players don’t want to be stuck with the same content for too long, even if it’s good, and crave new things to do/get. It’s why ever since WoD they’ve been making the “end of expansion lull” shorter and shorter and starting next expansions development earlier and earlier, so players can stay engaged and (again) make the game more profitable.
Plus as a player I certainly don’t want to be stuck with the same content for over a year. Even back in the heydays of MoP (5.4) and Wrath (3.4?) people still quit in droves because they got bored of doing the same raid and same dungeons for over a year.