12
I'm guessing its because, while HashSet implements ICollection, IsReadOnly has no meaning for HashSet. In fact, if you reflect it, the property always returns false. Implementing it explicitly hides this method from the public interface.
Another reason is because the ICollection interface may be implemented because of incidental reasons (e.g., to support xaml serialization) rather than because its necessary to the primary use of the class. So implementing it explicitly can keep the clutter out of the class' interface.