Mods always need to be updated to work with new versions, because they depend upon bits of the Minecraft source code, and the Minecraft source code changes with each update. It's rare to have none of Mojang's changes affect your mod. But even more than that, don't forget: before Minecraft 1.13 was the Update Aquatic, it was first the Technical Update. It used to be that 1.13 was the Technical Update, and 1.14 was the Update Aquatic. But then the two updates got merged into one, blah blah blah, and now here we are.
I mention all this because the Technical Update, as its name suggested, changed a lot of the core Minecraft code, more than usual. The command system was totally rewritten, so any mods that added or used commands will break from that alone. But even worse (better?), the Flattening happened. Block and item IDs were removed. Block data values were removed. All identifiers are now strings, and all extra block data that doesn't require processing is now a block state with no backwards compatibility for numerical metadata. (I mean, to be fair, it's been 5 versions since block states were introduced, so it's about time the transitional period ended.) Which means any mod that adds, removes, or interacts with blocks or items must be updated.
So unless you have a mod that does nothing with commands, blocks, or items, you're guaranteed to have to update it. And there's no promise that even if you have such a limited mod, you won't have to update, because there are many more changes under the hood than what I've mentioned (for instance, item entities now behave differently, too, so some entity code would need to change as well!).