Though a lot of people use the terms “update” and “upgrade” interchangeably, they imply 2 different processes. On one hand, “update” refers to the changes the development team applies to a system but without modifying the core structure. Updates usually are all about fixing bugs, patching security vulnerabilities, and adding support for new hardware, among other things.
An upgrade, on the other hand, is a set of significant changes that affect the system’s functionality on a more comprehensive level. You can have minor upgrades (where there are new features that add up to the existing functionality) and major upgrades (that completely reimagine the software, even to the point of replacing core functionality with other features).
The main difference between them, then, is how deep the changes brought by an update and an upgrade really are. An update is more “superficial” while an upgrade is more complex and “deeper.” Due to that, another difference between both is that updates are far more frequent, as they bring necessary tweaks and adjustments that are easier to apply. Upgrades, for their part, are less common but provide many modifications and improvements at once.