この問題を解決しようとした時に、すぐに思い浮かぶのは、
「Iを二つのループで使うからいけない。どちらか片方、Iじゃない変数でチェックすればいい」
という方法です。
実際にこれは間違いではなく、例えばCOUNT 命令でのループを
DEF COUNT
FOR J=0 TO 1
PRINT J
NEXT
END
とでもすれば、問題なく終了します。
しかし、この方法は「この変数は別のところで使っていないかな?」と常に確認しないといけなくなり、少々面倒です。
とした場合、最初のループで使っている変数 I と、COUNT 内で使っている変数 I は別物になります。
そのため、いちいち「この変数は別のところで使っちゃってないかな?」と気にする必要がなくなります。
※ローカル変数を使う場合の注意として、「ローカル変数は毎回リセットされる」という点がありますので、その点は注意が必要です。