Eu não sou a melhor pessoa para lhe detalhar todas deferenças dos jeito de se fazer uma função, mas de uma olhada nesse artigo:

https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Functions/Arrow_functions

Mais o que mais muda de uma obardagem para outro é o contexto, onde uma function tem um contexto próprio já uma arrow function não, isto é, em uma function as variáveis criadas nela não alterão as variaveis com e mesmo nome fora dela, já a arrow function compartilha o contexto do local que ela esta assim vc não consegue criar uma varivel com o mesmo nome.