<span> é um elmento inline logo ajusta-se ao seu conteudo,mlogo o text-align center nao faz sentido, agora para alinhar o <span> ao centro só tens de dar o text-align:center ao elemento que contem o <span>
o <div> é um elemento bloco, logo ele ocupa a linha toda ou seja enquanto tiver espaço eles estica, e assim nestes faz sentido colocar o text-align:center.
ou seja para o teu <span> ficar ao meio, caso ele estivesse dentro do <div> seria algo do género.
<div style="text-align:center">
<span>text</span>
</div>
graficamente
------------------------------------------------------------------------------------------------
| |text| |
------------------------------------------------------------------------------------------------
a vermelho é o <span>