YAGNI is about not adding functionality until it's needed. DRYing code isn't adding functionality.
Building code with support for currently-unused variation to support expected future similar-but-not-identical needs, that is, pre-emptively DRYing future code, is adding functionality.