When I cancel a sql agent job running an ssis package, I get a failure email because I set up the notifications to email when the Job Fails.
Does anyone know why this is considered a 'failure'?
Because SSIS package are executed as step of type CmdExec. When you cancel this step the process being run is forced to end prematurely. Consequently premature termination of a process is considered a failure. Behind the scene cancelling a job calls for sp_stop_job
For other type of job steps in a SQL agent job for e.g. T-SQL command performing a backup, when you cancel this job it finishes the currently executing step so it is not considered a failure.