Existem dois motivos:
- Se uma animação puder ser padronizada e manipulada de forma nativa pelo mecanismo de renderização do navegador, ela será mais barata (em termos de desempenho) do que em JavaScript.
- Como mencionado nos comentários, as animações / transições são principalmente sobre estilo, não tanto comportamento (pelo menos o conjunto que é coberto pela funcionalidade CSS), por isso não é um grande negócio com respeito à separação de preocupações.
A separação de interesses é boa, mas colocar animações em CSS faz mais sentido do que colocá-las em HTML, e tem mais desempenho do que fazê-lo em JavaScript (você pode como JS apis, mas o CSS é muito melhor.