The key is where Self: Sized. This constraint says that map may not be called on dyn Iterator, which means that it isn't a problem that generic methods can't be implemented for dyn Iterator, because they can't be called.
The reason you can still call map on a boxed iterator is that Box itself implements the Iterator trait too, so you are calling it on the Box, not directly on the dyn Iterator inside the box.
But I'm guessing in that you will loose the additional methods on it (like map). But nothing an additional wrapper can not fix, and the wrapper can also avoid heap allocation if it just carries a pointer to the internal iterator.
Edit: My bad, map also exists on a &mut dyn Iterator<...> because Iterator is also implemented for any &mut I where I is an iterator. Similar to the Box situation.
This was an attempt at spam. These particular spammers copy sentences from Reddit posts or other sources that show up in Google, so they can post messages that look relevant at first glance and don't trigger any spam filters. Then they go back later and edit their messages to include spam links. If you notice this sort of suspicious post from a user with little or no past activity, please flag it.