They’re basically as complex as operating systems these days.
You need to implement several huge standards in order to get relatively simple modern sites to load
Fun fact: chromium has about 1.5 million more lines of code than the Linux kernel (about 32mil vs about 30.5mil), not including whitespace/docs/etc.
Over the years browsers have accumulated too many features. If it was just plain HTML and CSS rendering it wouldn’t be so bad.
I agree with others who have said that browsers are basically operating systems now.
The fact that I can go to one website and have a pretty much parity perfect and functioning photoshop for free, go to another and play online multiplayer games and then just go to a social webpage, forums and so much more in the same place is mind blowing when you think of how different these things are and how it all works flawlessly in the same program
You can take a quick look at the W3C standard. Primarily at the page length.
Many reasons on many levels. One of them: Browser developers and the companies behind them benefit from a system where we have basically 2 options that reliably work. They have a stronger interest in keeping this expensive, rather than making it easy and cheap. So making sure other people can also develop a different browser is not on the agenda of anyone relevant.