Respostas:
Existem diferenças, aqui estão duas grandes:
Usar includepermite várias declarações de uma classe. A classdeclaração pode ser usada apenas uma vez ou você verá um erro de declaração de recurso duplicado.
includeusará dados externos, por exemplo, hiera, para parâmetros. A declaração classpermite especificar os parâmetros.
Consulte https://puppet.com/docs/puppet/latest/lang_classes.html#the-include-function