Исходя из того, что я понимаю, они могут означать в основном одно и то же, но наименование варьируется в зависимости от контекста.
Например, у вас может быть класс Dal / Dao, который реализует интерфейс IRepository.
Dal / Dao - термин уровня данных; более высокие уровни вашего приложения представляются в терминах репозиториев.