ghc-pkg - это прямой интерфейс к базе данных пакетов GHC. Cabal - это инструмент, обеспечивающий согласованную структуру распространения пакетов и способ указания метаданных, таких как зависимости между пакетами, номерами версий и информацией о сборке.
Использование Cabal для установки пакета зарегистрирует его в ghc для вас (помимо всего прочего), но на самом деле это степень перекрытия.
Обратите внимание, что ghc-pkg также предоставляет функциональные возможности, которые (насколько я знаю), которых нет у Cabal, например скрытие установленных пакетов.