The problem is, that your button is using the checked image by default, while your script only changes the image if the button is (also) checked, it does nothing if it's not checked. So either change the default image to unchecked (in the window definition) or change the script to:
var BtnSubtitles = this.GetControl("subtitle_btn");
BtnSubtitles.Pressed = Game.Subtitles;
if(BtnSubtitles.Pressed) BtnSubtitles.SetImage("sprites\interface\Options\checkbox_on.jpg");
else BtnSubtitles.SetImage("sprites\interface\Options\checkbox_off.jpg");