Why is it ON and not IN her right hand?
With "in," it would mean that she is holding six fingers in her right hand...
A correct translation would have been: Zofie's right hand has six fingers. Since I am deaf to the intricacies of the Czech language, I cannot tell whether that is what the Czech sentence really meant.
Zofie's right hand has six fingers. = Žofiina pravá ruka má šest prstů.
The meaning is the same as the "Žofie má na pravé ruce šest prstů." but the syntax is different.
Is "ruce" in locative case because of "na"?
Yes, and because it is a location. Accusative "na ruku" would be a direction (Kiss her on her hand. Put it on my hand/arm.).