Almost all NFTs are hosted on IPFS. Opensea shows a CACHED version of the image, because pulling them directly from IPFS puts unnecessary strain on the network and is comparatively slow.
The contract for the NFT generally just points to an IPFS identifier (a sha256 hash of the content), and it's up to the viewer (a website like opensea) to decide what ipfs gateway to use. Even if the ipfs network died you could still use other p2p methods to find the content, as long as someone was still hosting it.
The amount of artwork NFTs that has "Metadata: Centralized" in their details appear very high, although it's difficult to get any exact numbers. As far as I can tell, OpenSea doesn't provide an option to filter based on this field.
Some high value collections like BAYC have frozen metadata, so it can never be changed. I do know some other big collections serve images from AWS or their own domains, this happens because it's extremely expensive at current gas prices to do partial reveals or any kind of metadata changes on-chain
It's a problem, it used to be the grand majority of collections were fully decentralised and frozen but nowadays it's a mixed bag – I think it will change once the gas problem is solved, but it's also partly because the audience has changed and newcomers into NFTs don't care so much about their tokens being fully decentralised.
The contract for the NFT generally just points to an IPFS identifier (a sha256 hash of the content), and it's up to the viewer (a website like opensea) to decide what ipfs gateway to use. Even if the ipfs network died you could still use other p2p methods to find the content, as long as someone was still hosting it.