Первый вариант современный и позволяет повесить на одно событие одного элемента множество разных обработчиков. Второй вариант доисторический и позволяет повесить на событие элемента единственный обработчик. Но если в коде гарантировано будет только один обработчик, то разницы между этими вариантами нет.
Разница в том что onclick это старый вариант. DOM Level какой-то там дремучий.... Прослушиватель событий addEventListener ввели гораздо позже. Через него на элемент можно вешать много вской ысячины, а не что-то одно