Na prática, considerando esses detalhes que o colega comentou acima, você usa a que você achar melhor, porque faz pouquíssima diferença. Eu não sei se existe algum caso de uso em que só dá pra usar uma dessas opções, acredito que não. Eu uso exclusivamente arrow functions, até porque são syntactic sugar, ou seja, feitas pra facilitar a vida do programador. Quando você vai declarar uma função que só vai ser usada naquele caso específico, como como parâmetro de outra função, por exemplo, é bem mais prático e fácil de ler. Se você trabalha com React ou alguma outra biblioteca ou framework que são muito focadas em programação funcional, arrow functions acabam sendo basicamente o padrão.

O único caso de diferença real é em funções geradoras. Nesse caso, você precisa usar a palavra-chave function* com o asterisco depois. Não existe equivalente pra arrow functions. Mas funções geradoras cumprem objetivos bem específicos e são bem raras.