Esto se debe a que el operador ->>
obtiene el elemento de matriz JSON como texto. Necesita una conversión para volver a convertir su resultado a JSON.
Puede eliminar esta conversión redundante utilizando el operador ->
:
select person->'dogs'->0->'breed' from people where id = 77;