addEventListener добавляет отслеживание
любого события, которое укажешь, а onclick - только клики. Поэтому что использовать - зависит от задачи.
Кроме того, второй способ позволяет повесить только один обработчик события (следующий будет перезатирать предыдущий), в то время как первый - сколько угодно.