Respuestas:
Hay diferencias, aquí hay dos grandes:
El uso includepermite múltiples declaraciones de una clase. La classdeclaración solo se puede usar una vez o verá un error de declaración de recurso duplicado.
includeutilizará datos externos, por ejemplo, hiera, para los parámetros. La declaración le classpermite especificar los parámetros.
Ver https://puppet.com/docs/puppet/latest/lang_classes.html#the-include-function