Questo perché l'operatore ->>
ottiene l'elemento dell'array JSON come testo. Hai bisogno di un cast per riconvertire il risultato in JSON.
È possibile eliminare questo cast ridondante utilizzando l'operatore ->
:
select person->'dogs'->0->'breed' from people where id = 77;