Если у вас поля в этой строке содержат множество значений в запакованном виде (в json, например), индекс нужное значение не поможет распаковать.
Смысл индексировать массив очевидный: вы хотите искать только по полям с ключом TEXT, если проиндексировать весь JSON, будет искать по лишним полям, так что сначала надо вытащить их (вы делаете то же самое в запросе с jsonb_array_elements).
select * FROM
(select jsonb_array_elements(col->'obj') -> 'TEXT' as text from t) as one
where to_tsvector('pg_catalog.english', one.TEXT) @@ to_tsquery('function')
CREATE INDEX ix_t_col ON t
USING gin (to_tsvector('pg_catalog.english', jsonb_array_elements(col->'obj') -> 'TEXT'))
https://qna.habr.com/q/1255870