tsc и ngc имеют разные цели, и речь не идет о выборе одного над другим.
tsc - это компилятор TypeScript, и он вам нужен для генерации JavaScript, если ваше приложение написано на TypeScript.
ngc - специфичный для Angular компилятор. Это не превращает код TypeScript в JavaScript. Это делает "последний штрих", чтобы сделать ваши пакеты приложений готовыми для рендеринга браузером. В частности, он превращает шаблоны ваших компонентов во встроенный JavaScript. Если вы выполняете сборку prod с компиляцией Ahead of Time (AoT), ngc выполняет свою роль до сборки пакетов. В режиме разработки мы используем компиляцию Just-in-Time: шаблоны не скомпилированы предварительно, компилятор ngc включен в пакеты и компилирует шаблоны после загрузки ваших пакетов браузером.