Dust.js は純粋にテンプレート モジュールです。そのため、json とテンプレートを組み合わせて html 出力を配信できます。
Angular.js は、テンプレート (ページ) で定義された変数にロジックをバインドできるようにするクライアント側フレームワークです。
したがって、dust.js では、テンプレートを使用して json をいつ実行するかを決定する責任があります。通常、サーバー (またはクライアント) で json をフィードし、結果をレンダリングするように要求します。
angular.js を使用すると、モデル (json) が変更されたときにフレームワークが適切に再レンダリングされます。その変更のトリガーは、ユーザー アクション (フォームへの入力など) である場合もあれば、サービスからの新しい json の読み込みによる場合もあります。
通常、単一ページの JS アプリ (gmail を考えてください) が必要な場合は、angular.js を使用します。Dust.js はおそらく、json を渡すことによってコンテンツが駆動される複数のページを使用する従来のアプローチに似ています。
両方をタンデムで使用することもできます。つまり、dust.js を使用したサーバー側のレンダリングと、angular.js の動的なクライアント側のロジックを組み合わせることもできます。