It's a problem of most buzzwords, there is no formal definition and it largely depends on context.
If I were to give you my attempt of an definition, it would be: the main idea behind "web3" is to have systems where no single entity can gate-keep users. It's not supposed to be "better than web 1.0", but mostly to be a contrast with the "walled garden" platforms and social networks that defined "web 2.0".
So, by that definition, social media services powered by ActivityPub that allow communication between different services are a step towards web3 compared with the "web 2.0" social networks like Facebook or Twitter. Messaging protocols that Matrix, XMPP are a step towards web3 in comparison with basically any messenger protocol that is controlled by Big Tech, etc. Content distribution based on systems like IPFS are a step towards web3 in comparison with traditional websites.
The main thing is these systems still have central points where users can be controlled or censored. An user of Mastodon (or any federated service) can be kicked out by the server admin and will have no recourse to get access back.
To be fully permissionless, a distributed system needs to be able to reach consensus without having to appeal to any central authority. "Consensus" here means basically anything about the "state" of the distributed system: was this message really sent by Alice to Bob? If Charlie wants to buy an e-book from David, how can we verify if Charlie has sent the payment to David, and how can David prove that Charlie now has access to the e-book file? This is the part where blockchain helps.