In Adventuron
For games without jingles or rollback, all three options have the exact same function.
As far as adventuron is concerned, end_game, and lose_game are the same (they will play the lose game "jingle" - when it is configured to be active), and offer a rollback option (if rollback is enabled). If rollback is rejected then it restarts the game.
win_game will play the win game "jingle" - when it is configured to be active, and will not offer a rollback option (the game is won).
end_game came first, and I really should have removed it. The problem is that the excalibur tutorial featured the command, so I use end_game as an alias for lose_game.
In 8-Bit Compatibility Mode
As far as 8-bit compatibility goes, win_game, lose_game, and end_game are all the same (they generate an END opcode).