The simplest answer is likely: paperwork and database changes. The impression here is that for many banks the card number has long been synonymous with its "primary key" in most of their databases and changing it would produce a ton of paperwork and a lot of database activity/churn and just don't have the concept of a "single" card (even though Ship of Theseus style it has many physical replacements, too) over time having multiple card numbers.
This is going to sound like an ad, but it's one of the things that's fascinating to me about Apple's Card in directly shifting that: the Apple Card uses "virtual numbers" and has different card numbers for all of its different ways to pay (the Apple Pay NFC, the magnetic stripe on the physical card, the EMV chip on the physical card, and the card number the app gives you for use in manual entry situations such as website payments or vendor's cash register is offline payments). At any time in the app you can push a button to generate a new card number for some of these. The CVV code for the manual card number is setup to change frequently (much more frequently than the expiration date) and there's even a setting to have the application change it automatically and frequently (once every few days). Subscriptions remain authorized when the CVV code changes, but it makes it tougher for someone to skim that manual entry card number from you and be able to use it new authorizations for more than a few days. (The CVV code basically becomes a mini-TOTP 2FA.)
I'm hoping more cards learn some of these lessons from Apple Card and "virtual card numbers" become more common.