La explicación de Black Assassin no es equivocada, pero yo voy a darte una explicación más teórica.
Los interruptores globales y locales son variables de tipo booleano, es decir que solo pueden valer 0 (apagado/falso) o 1 (ecendido/verdadero)
Las variables normales son contenedores de datos, desde el editor de eventos de RPG maker si no me equivoco solo les puedes dar valor numérico, pero realmente les puedes dar también valores alfanuméricos si accedes a estas variables desde el editor de scripts, pero bueno el uso avanzado de las variables no nos importa ahora mismo.
Una variable sirve cuando necesitas más de 2 opciones, con un interruptor solo puedes temer dos opciones, 0 y 1.
Pero imaginemos que tenemos un cuarto con 3 eventos, y al hablar con uno de ellos el valor de variable nos cambia entre 0, 1 y 2 . Luego tenemos un 4º evento y al hablar con este reacciona de forma diferente dependiendo de con que evento hayamos hablado.
Ej: Hay 3 pokéballs sobre una mesa y cuando hablas con una el valor de la variable cambia a X, al hablar con el profesor, mediante una serie de condiciones (las cuales puedes configurar desde el editor de eventos), te pregunta si ese es el pokémon que quieres coger.
Otro ejemplo:
Tenemos que encontrar 6 gallinas dispersas por el pueblo, al hablar con cada gallina el valor de variable se incrementará en 1, y volver a hablar con el granjero, el evento del granjero evaluará si la variable vale 6, si es así hemos encontrado todas las gallinas y el granjero nos lo recompensará.
Estos ejemplos se pueden realizar tanto con interruptores como con variables, pero mediante interruptores será bastante más enrevesado, imagínate tener que gestionar 6 interruptores para comprobar si has encontrado todas las gallinas... vaya peñazo XD
Espero haberte ayudado ^^