Потому что ваша анимация предполагает, что весь блок должен скрыться за левой частью экрана (он в вашем случае занимает 100% ширины экрана). Задайте span ширину по умолчанию, а в анимацию добавьте 100vw, вместо 100%, чтобы блок изначально был за правым краем вьюпорта
.marquee { text-align:left; width:auto; overflow:hidden; white-space: nowrap; }
.marquee span { display:inline-block; width:auto; text-indent:0; animation: marquee 5s linear infinite; }
@keyframes marquee {
0% { transform: translate(100vw, 0); }
100% { transform: translate(-100%, 0); }
}