The jump in distro versions, say, from Fedora 38 to Fedora 39, is not the same as the jump from Windows 10 to Windows 11. It’s more like the jump from version 23H2 to 24H2.
Now, I’m sure even most Windows users among those reading will ask “wtf are 23H2 and 24H2”? The answer is that those version numbers are the Windows analogue to the “23.10” at the end of “Ubuntu 23.10”. But the difference is that this distinction is invisible to Windows users.
Linux distros present these as “operating system upgrades”, which makes it seem like you’re moving from two different and incompatible operating systems. Windows calls them “feature updates”. They’re presented as a big deal in Linux, whereas on Windows, it’s just an unusually large update.
This has the effect of making it seem like Linux is constantly breaking software and that you need to move to a completely different OS every six to nine months, which is completely false. While that might’ve been true in the past, it is increasingly true today that anything that will run on, say, Ubuntu 22.04 can also run without modification (except maybe for hardcoded version checks/repository names) on Ubuntu 23.10, and will still probably work on Ubuntu 24.04. It’s not guaranteed, but neither is it on Windows, and the odds are very good either way.
I will end on the remark that for many distros, a version upgrade is implemented as nothing more than changing the repositories and then downloading the new versions of all the packages present and running a few scripts. The only relevant changes (from the user’s perspective) is usually the implementation of new features and maybe a few changes to the UI. In other words, “feature update” describes it perfectly.