回答:
違いはありますが、ここに2つの大きなものがあります。
を使用includeすると、クラスを複数宣言できます。class宣言は、一度だけ使用することができます。また、重複したリソースの宣言エラーが表示されます。
includeパラメータにはhieraなどの外部データを使用します。宣言classにより、パラメーターを指定できます。
https://puppet.com/docs/puppet/latest/lang_classes.html#the-include-functionを参照してください