Matrix is centralized, the server does all the heavy lifting.
But how does that solve getting notifications to a mobile device? Does the phone just poll the server all the time? Wouldn't that eat a lot of battery?
The phone polls only one server, in p2p it will need to poll a good chunk of whole network.
Matrix isn't centralized, though it's true servers do the heavy lifting for now (eventually you will be able to run the server on the clients)