Ответы:
Есть различия, вот два больших:
Использование includeпозволяет несколько объявлений класса. classДекларация может быть использована только один раз , или вы будете видеть дубликат ошибки декларации ресурса.
includeбудет использовать внешние данные, например, hiera, для параметров. Декларирование classпозволяет указать параметры.
См. Https://puppet.com/docs/puppet/latest/lang_classes.html#the-include-function.