Any surface that isn't covered in glass is better than any surface that is. Past that point, the best type of surface is variety. That sounds like a cop out, but I feel it's true.
Barefoot running is experienced with sensory perception and the best way to promote that is through varying the surfaces you run on. Packed dirt feels different than pavement, which feels different than asphalt, which feels much different than woodchips.
Most people try to steer clear of gravel, despite its ability to short track you towards landing lightly on your feet. I can't say I blame them though.
The best surface to receive feedback on is a smooth hard surface. Grass and dirt can be very forgiving of bad form. A hard surface provides better and more consistent feedback on your form.