Oi Sérgio! Tudo certinho?
Fizemos isso porque é uma boa prática: a classe ScreenmatchApplication tem como responsabilidade principal inicializar a aplicação, rodando tudo que está "escondido" pelo Spring Boot. Porém, além disso, estamos adicionando mais coisas para o método run.
Agora, mais no início, parecem poucas coisas, então realmente não teria taaanta necessidade de criar uma outra classe para fazer isso. Mas sabemos que ainda iremos adicionar outras funcionalidades à aplicação. Imagina que pra cada uma delas, a gente vai criar um método. Se adicionarmos esses métodos na classe ScreenmatchApplication, ela vai ter várias responsabilidades além de inicializar o Spring Boot, além de ficar bem extensa.
Então é melhor criar logo outra classe para representar as nossas funcionalidades, que é a classe Principal, e apenas usar o método exibeMenu na classe ScreenmatchApplication, deixando tudo melhor dividido.
Essa parte de deixar a classe com uma única responsabilidade tem relação com um princípio do SOLID, o Princípio da Responsabilidade Única. Se quiser dar uma olhada, tem um artigo aqui da Alura sobre esse assunto: https://www.alura.com.br/artigos/solid
Espero ter ajudado, e qualquer dúvida, estou à disposição!
Bons estudos!