Считайте так - extend создает взаимосвязи между селекторами. Подумайте, надо ли вам связывать h1 и button, чтобы сделать их жирным шрифтом или зеленым цветом? Думаю, что нет.
а вот extend для общих стилей того же одного button может быть полезен. Хотя, если вам нужен mixin для кнопок (а вам он скорее всего понадобится, потому что нужно будет передавать параметры), то используйте миксин. Также extend может быть полезен в заголовках и подобном.
Extend многие не любят еще из-за того, что если у вас больше одного уровня вложенности + вы пишете несколько селекторов (через запятую), то результат в собранном CSS может быть самым неожиданным...
Во всех остальных случаях больше смысла в использовании mixin.