As Chris explains in Feature upgrade (part 1) - fundamentals
Feature upgrade does NOT happen automatically (including when the
Feature is deactivated/reactivated)! The only way to upgrade a Feature
is to call SPFeature.Upgrade()
So, on first deployment you'll activate the Feature and the Feature_Activated event will run.
Now you make some changes and you upgrade the solution using the Update-SPSolution cmdlet. The files in the package get deployed but the Feature version doesn't change, the Feature_Upgrade event handler doesn't run, and none of the upgrade instructions in the Feature manifest execute. To get these things to happen you need to write code or use PowerShell to call the Upgrade method of the SPFeature object. I generally create a custom application page that users can use to do this.
Check out Deep dive into feature versioning and upgrade support in SharePoint 2010 for more details.