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;