Потому что display: none; не анимируется. Как вариант появление можно анимировать при помощи animation
.burger-active {
animation: fadeIn 1s ease forwards;
}
@keyframes fadeIn {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
а вот если нужно исчезновение анимировать, тогда, либо отказаться от diplay: none; , либо к примеру добавлять промежуточный класс который покажет анимацию исчезновения и в конце поставить display: none;