Hola! El código funciona bien. Para mantener ordenados los foros es preferible incluir siempre el código de todos los ejercicios de una entrega, en este caso faltaría el código del ejercicio 1 de esta entrega
Estoy contigo: la crítica si es sana ayuda a aprender y mejorar, por eso intentaré hacer una crítica sana

En primer lugar al ver el ejercicio me ha llamado la atención los nombres de variables que utilizas. Me parecen un tanto confusos, y creo que el código mejoraría si les dieras nombres más descriptivos.
Por ejemplo, en lugar de arrayOriginalFinal me parecería más adecuado arrayOrdenado
En casos como este:
var arrayOriginal=['Moto','soto','Abaco','abeja','Sapo','nieve','Zumba','barco'];
var miArray=['Moto','soto','Abaco','abeja','Sapo','nieve','Zumba','barco'];
Estás declarando dos arrays iguales (uno tiene el mismo contenido que otro). Esto en principio debe evitarse, pero si se considera necesario (por ejemplo para poder operar sin perder la ordenación inicial) en lugar de darle dos nombres que hagan que parezcan distintas cosas, veo más razonable ponerle como nombre arrayOriginal y copiaDeArrayOriginal ó duplicadoArrayOriginal. De ese modo queda más claro que se trabaja con una copia o duplicado. Si no se hace así, en un código de cientos de líneas no nos acordaremos de que esos dos arrays eran uno copia del otro inicialmente.
Cuando tengas que hacer una copia o duplicado te recomiendo buscar métodos específicos. Escribir a mano la copia es fuente de errores.
Por ejemplo en el caso anterior puedes usar
var arrayOriginal=['Moto','soto','Abaco','abeja','Sapo','nieve','Zumba','barco'];
var miArray=arrayOriginal.slice(0);
El código en general lo veo bien
Saludos!