The fact is that with the Spectre mitigations added to Chrome, the performance of networking with manifest v2 was bad. Having to keep sending every network request through 3 different processes just in case there is a plugin (uses by the minority of users) that wants to filter the requests before they are made.
Of course, blocking resource fetches like that could have easily been detected by any server that cares about it, and the interaction with service workers was...weird.
With manifest v3 you can still block ads. You can remove them from the DOM, you can make them invisible, you can replace them. You just can't programmatically decide which resources to filter - only a declarative model for resource filtering is supported.