Olá, Filippe. Tudo bem?
O modo declarativo é mais recente e possui menos variações para executar as mesmas atividades. O nome declarativo vem do paradigma declarativo de programação, em que a gente se preocupa mais em dizer (declarar) o que queremos e nem tanto no "como" fazer. Por possuir menos palavras chaves e ser mais simples para montar, também oferece menos flexibilidade, então para pipelines mais complexas talvez não se encaixe. Também oferece validação do código antes mesmo de começar a executar o stage, permite definir opções para termos variáveis de ambientes específicos para stages específicos.
Já no modo Scripted utiliza-se o Groovy, que é uma linguagem de programação propriamente dita, utilizando programação imperativa (foca mais no "como" fazer), que permite você executar operações mais complexas. O Groovy é considerado um DSL (Domain Specific Language). Diferentemente da pipeline declarativa, não possui validação do código antes de ser executado, sendo que sua pipeline pode começar a executar e dar erro no meio. Também não permite definir ambientes específicos para stages específicos, usando mais variáveis globais.
Existem outras diferenças, mas creio que essas já dão um começo pra entender.
Espero ter ajudado. Bons estudos!