I categorize BIP34 fork as more of a bug fix than an upgrade like Taproot.
Regardless it is still a soft fork. BIPs 66 (strict DER) and 65 (OP_CLTV) also used the same activation mechanism. You could say that BIP 66 is a bug fix, but BIP 65 is certainly a feature upgrade in the same way taproot is a feature upgrade.
Also the activation was still using 95% rule as far as I can tell. The 75% part was only used to reject blocks with version >= 2 that did not have the height in their coinbase, in other words even with 75% of blocks accepting BIP34, block with version=1 could still be mined.
The part that matters is where the new rules begin to be enforced. Under ISM, the new rules were enforced at 75%. This means that if any blocks failed the new rules after 75% had signaled, then there would be a chain split. The same is true of the proposed 90% threshold: the new rules activate when 90% of blocks signal (after a grace period) and any block that fails the new rules afterwards is invalid. it doesn't matter that blocks conforming to the old rules can be mined, the same applies to BIP 8 and 9 deployments. All that matters with this threshold is whether the new rules are being enforced. For the current taproot activation proposals, that is at 90%. In all ISM forks, that was 75%.
The 95% threshold has no counterpart in BIPs 8 or 9 as they do not have an invalidity requirement. There is no requirement that disallows blocks which are valid under the new rules but do not use them (as a v1 block would be after BIP 34). Even with segwit, miners can still mine blocks that contain only legacy transactions and they don't need to have the witness merkle root in their coinbases if they do so.