Hola Antonio
En realidad podrías declararlas como Public. Pero el motivo es otro: lo que ocurre es que seguramente hayas visto una implementación de Propiedades, que aunque básicamente es lo mismo, hace variar un poco la sintaxis.
Cuando declaramos una propiedad, ha de ser pública y puede ser de Lectura/Escritura o de sólo Lectura. En otros lenguajes sería setter/getter o solo getter, para que lo entiendas. Entonces las funciones _Read() y _Write(arg) asociadas a la propiedad deben de ser privadas por temas de encapsulamiento y en caso necesario harían uso de variables locales privadas para acceder a los datos que setean o que obtienen.
Entonces, en lugar de usar las funciones directamente, usarías la propiedad como si fuera una variable para obtener o establecer el dato.
Está muy bien explicado en la página de ayuda de gambas:
http://gambaswiki.org/wiki/lang/propdecl?l=es
en inglés está algo más completa:
http://gambaswiki.org/wiki/lang/propdecl
Por si te surge la duda de por qué usa el signo $ delante de la variable sName, es sólo una cuestión de estilo o convención sintáctica para denotar que una variable es Local o Privada, sin ningún efecto en el resultado.
https://gambaswiki.org/wiki/doc/naming
Saludos