Я предполагаю, потому что, хотя HashSet реализует ICollection, IsReadOnly не имеет никакого значения для HashSet. Фактически, если вы отражаете это, свойство всегда возвращает false. Реализация этого явно скрывает этот метод от открытого интерфейса.
Другая причина в том, что интерфейс ICollection может быть реализован по случайным причинам (например, для поддержки сериализации xaml), а не потому, что это необходимо для основного использования класса. Таким образом, его явная реализация может убрать помехи из интерфейса класса.