Объяснение данного феномена может пойти по двум различным путям: 1. Эти слова имеют одни и те же исторические корни. 2. Слово с его значениями в одном языке является полным заимствованием из другого.
Английское слово right происходит от старо-английского riht, reht. Далее идет такая последовательность: прото-германское *rehtaz (право, прямо), прото-индоевропейское h3regtós (двигаться прямо), где *h3reg обозначает "прямо". Параллельно с этим "прямо" в латинском-это rectus, а в греческом-ὀρεκτός (orektós). Русское слово "правый" происходит от праславянского *prāvъ, которое стало источником происхождения старославянского "правъ" (прямой, правильный, невиновный). Вероятно, родственными словами являются греческое ὀρθός (правый), латинское probus (порядочный, честный) и древнеиндийское prabhús (выдающийся). Скорее всего, что современное английское и русское слова и их значения имеют разные источники и как следствие эти слова не являются родственными. Но, вероятно, на определенном этапе развития языков произошло взаимопроникновение смыслов и их заимствование, о чем свидетельствует схожесть этих значений в древнегреческом источнике.
Похоже, что в испанском и французском похожая история