JSON хранит текст "как есть" (порядок ключей, пробелы сохраняются). JSONB парсит JSON и хранит в бинарном формате - быстрее при чтении и при условиях/индексах. JSONB поддерживает GIN-индексы для поиска по ключам и значениям. В большинстве случаев выбирают JSONB.