Technically a block is considered fully confirmed after 101 confirmations.
But this is pure theory IMO. In practice, I don't think there has ever been a scam, or the creation of an alternative chain to void a confirmed transaction after 1 confirmation. So, the 100 confirmations seem too conservative to me, considering that the difficulty grows exponentially with each confirmation.
101 confirmation is the number of confirmation needed for a Coinbase reward to be "matured" so that it can be spent which is I believe the reason why @NotFuzzyWarm says a block is "technically confirmed" after 101 confirmations.
It's an overkill for regular use cases under normal network conditions (3 confirmation is more than enough). The purpose of 101 confirmation for Coinbase reward is to prevent a "mess" in case a reorg happens and it needs to be a fixed value that is also big because you can't change the rules based on network conditions dynamically. But for regular use cases as individuals (or services, etc.) you can set any number dynamically.
You see the number of confirmation required to consider a transaction irreversible is not a fixed thing. It depends on a couple of factors. For example the size of what you are receiving, the person that is paying you, the client type you are using (it is safer to trust your full node than your SPV client), and most important of all the network conditions.
Normally, there is nothing going on. The miners are all mining on the same chain building on top of each new block that is created and worse case scenario we may end up seeing a single block re-written. Which means accepting transactions with 1 to 3 confirmation is safe.
But there are times when the risk of chain-split is higher, like during forks or maybe some day a hashrate attack. For example during the mess back in 2017
it was safer to wait for more confirmation than usual (the suggested 30) due to higher risk of a chain-split.