It’s actually really hard to get it right—loading the new page is simple enough, but you also have to write code to display a loading bar, make the Back and Forward buttons work, show an error page if the connection drops, and so on.
The argument to do all this often is that it‘s faster to load just the content part than loading the complete page. Testing the old and new MDN site, he finds out:
Browsers actually are pretty fast doing this. That‘s the reason I use server rendered HTML pages on my websites. Why complicate life for me and everyone else?