Oi César, tudo bem?
Se implementarmos a interface WebApplicationInitializer
somos obrigados a implementar todos os métodos definidos na interface e muitas vezes podem ficar métodos com implementações vazias.
A classe AbstractAnnotationConfigDispatcherServlet
já faz as implementações vazias pra você não precisando deixar seu código com "sujeira" por isso optamos por herdá-la, para não ter métodos desnecessários.
Se você precisar implementar muitos métodos ou se não quiser correr o risco de esquecer de algum, o ideal é usar a interface mesmo.
Abraço!