Потому что элемент <span> (равно как и элемент <a>) по умолчанию является строчным. У строчных элементов есть свой собственный размер, который в данном конкретном случае зависит исключительно от размера шрифта. Другими словами, для содержащих текст строчных элементов width и height не работают в принципе...