Because you can't force the mission to end when a human player gets killed, since the game launches the standard death cinematic sequence. If an AI controlled unit dies this doesn't happen so the game will fire the trigger correctly and end the mission. It's useless to force a mission to end if the player dies since, both in campaing and in single mission, it doen's make sense to "end" a mission in a particular way with the player death (since in a campaign the game will load the next mission according to what you defined in Description.ext, even if you fail a mission, for example in ArmA campaign the "strategic map" interface is just a mission that displays a dialogue and launches a mission depending on what you choose on the dialogue. If you fail a secondary mission the game doesn't end but it will load the next mission according to what you've done in the previous one), the mission ends itself since the player is death and you can choose to load, start again the mission or exit the game. Multiple ends should be used only when you fail a mission for an event different from the player death (example: you must prevent a guy from beeing executed but you fail and the guy dies, you can use a different end to warn the player that the target is dead). The only way to modify the standard death sequence for a player is to include the "onPlayerKilled.sqs" script in your mission, but you can only change the cinematic normally availabe when you die. You can find further info here:
http://community.bistudio.com/wiki/Event_Scripts .
One other thing, you can't execute nothing with "visual" effects in an "end trigger" since the mission will be forced to end immediately and you won't see anything. A way to execute a cinematic, to display a text or to do whatever you want before ending a mission is to use a normal trigger for the end condition, launch a script from there and then use a boolean value that will be set to true when the script ends, then make an end trigger that has that boolean value as condition. Example: you want to display "You failed the mission asshole!" when you fail your objective, so create a normal trigger like this:
Type: None
condition: <<Place the "mission failed" condition here
On activation: [] exec "endLose.sqs"
then create the script with the following code:
cutText["You failed the mission asshole!", "PLAIN", 0.5]
~5
; we set the boolean value to true to end the mission
lose = true
exit
Now create a trigger like this:
Type: end 1
Condition: lose
On Activation: <<Leave this empty>>
now the mission ends when the boolean variable "lose" is true, and that happens when the final sequence script is done.
Using a timeout won't work since the On Activation field is executed when the timeout expires and this means that for an end-type trigger the mission will end immediately when the timer expires (it doesn't execute the On Activation field either).