Well, there's no actual answer from Game Freak themselves, but theories can be given.
The reason why Ash is still ten is because:
- Game Freak wanted it like that. They control how old Ash is.
- Ash was probably meant to stay ten because the Pokemon anime is usually directed at younger children. As a 10 year old, he can easily relate to most of the children that watch the anime. Imagine a 20 year old on a trip. Now, the kids can't exactly relate to him, can they? In short, Ash serves as a connection between children and the Pokemon anime.