El compareTo() es para "enseñarle a una clase como se han de comparar los objetos creados a partir de ella.
En este caso, le estamos "enseñando" que a los objetos Persona se han de comparar según su atributo sueldo.
Quizás no lo estás viendo claro porque estas comparaciones en tu código las está haciendo el metodo Arrays.sort() de manera interna.
sort() se encarga de ordenar los objetos que contiene el array.
Si los objetos fueran numeros enteros, no tendrá problemas para ordenarlos porque ordenar numeros es muy facil y esto ya sabe hacerlo. Es evidente si un numero es mayor o menor que otro.
Pero si se trata de objetos creados a partir de una clase diseñada por el programador, sort() no va a tener ni puñetera idea de como ordenarlo. ¿Como va a saber el si una Persona es mayor o menor que otra?
Entonces, Arrays.sort() lo que hace es buscar en la clase Persona el metodo compareTo() (metodo que todas las clases heredan de la clase Object, que es padre de TODAS las clases) con la esperanza de que ahí, le hayamos explicado en que atributo debe fijarse para decidir el orden de las Personas.
Podríamos decirle que las ordene segun la edad, según la estatura, según el peso....en este caso le decimos que las ordende según el sueldo. Y en compareTo() explicamos como ha de hacerse esta comparación.
Prueba a añadir el siguiente código en el main() para tener un ejemplo más visual de como funciona el compareTo().
Vamos a comparar a Zulema(Array[0]) con Rafael(Array[1])
if (Array[0].compareTo(Array[1]) == 1)
System.out.println("Zulema cobra MAS que Rafael");
else if (Array[0].compareTo(Array[1]) == -1)
System.out.println("Zulema cobra MENOS que Rafael");
else if (Array[0].compareTo(Array[1]) == 0)
System.out.println("Zulema y Rafael cobran lo mismo");
Prueba a modificar los sueldos de estas dos Personas y ejecuta varias veces el código, para que veas como cambia el mensaje según sus sueldos.
Si no he sabido explicarme bien, insiste de nuevo y buscamos otra forma de explicarlo.
Un saludo.