module.exports - это часть модульной системы CommonJS, плюсом которой является то что ее можно реализовать на самом JS (нужна возможность синхронной загрузки кода), как это сделано например в Node.JS, где данная модульная система и появилась. Минус же в том, что с точки зрения AST все конструкции CommonJS - это обычные конструкции JS, вроде вызова функции require или обращения к объекту module, а значит у различных инструментов оптимизации и сборки тут гораздо меньше возможностей (например webpack не умеет тришейкинг в модулях CommonJS)
export default - это часть стандартных модулей JS, которые появились в стандарте лишь в 2015 году а работающую нативно реализацию получили только в 2018-2019 годах. И это долгое время было ее основным минусом. Так же минусом является то, что на npm до сих пор подавляющее большинство модулей не имеют поддержку данного стандарта, а поставляются только в CommonJS. Но однозначный плюс в том, что это нативная возможность языка, со всеми вытекающими.
Так же есть хорошая статья по теме:
https://habr.com/ru/company/domclick/blog/532084/