sql job cancel triggers failure notification 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.