Los titulares de parámetros no se entienden dentro de los literales:'...:nom...' contendrá los caracteres :nom , no los valores enlazados de nom .
Para PostgreSQL 9.5 (y versiones posteriores), use:
SELECT * FROM contrat WHERE contrat_json @> jsonb_build_object('nom', :nom)
Para 9.4:
SELECT * FROM contrat WHERE contrat_json @> CAST(json_build_object('nom', :nom) AS jsonb)
Para 9.3 (y versiones anteriores), no hay operador de contención JSON (ni el jsonb tipo).
https://rextester.com/AUHP11519