Dla $addToSet aby nie dodawać elementu, element musi całkowicie dopasować istniejący element. Z createdOn ze względu na aktualny czas łatwo zrozumieć, dlaczego w Twoim przypadku tak się nie dzieje.
Więc $addToSet działa dobrze dla elementów z Date pola, ale wymaga dokładnego dopasowania, tak jak w przypadku każdego innego typu.