Důvodem je operátor ->> získá prvek pole JSON jako text. K převedení výsledku zpět na JSON potřebujete přetypování.
Toto nadbytečné přetypování můžete odstranit pomocí operátoru -> :
select person->'dogs'->0->'breed' from people where id = 77;