"I am eight years old."
Translation:Yo tengo ocho años.
And cumpleaños translates as birthday. So I believe MagneTufte is saying the Spanish meaning is that, on reaching your third birthday, you have three years completed.
Because in Spanish, you say "I have __ years." when you talk about how old you are. It's just a difference in phrasing between the two languages.
Because soy is a permanent quality. You are only a certain age for 1 year.