Why CTX_DDL.SYNC_INDEX procedure doesn't work?
To perform this operation, the user who executes the SYNC_INDEX procedure has to be the owner of the index. So, in my case, I had to give the execution rights on the package with the CTXSYS user:
GRANT EXECUTE ON CTXSYS.CTX_DDL TO myuser;

Now, I can synchronize my index with myuser:
EXEC CTX_DDL.SYNC_INDEX('idx_docs', '2M');
SELECT SCORE(1), id, text FROM docs WHERE CONTAINS(text, 'city', 1) &gt; 0;

I got the same result as the documentation:
  SCORE(1)         ID TEXT
---------- ---------- -------------------------------------------------
         4          2 &lt;HTML&gt;Paris is a city in France.&lt;/HTML&gt;
         4          4 &lt;HTML&gt;Los Angeles is a city in California.&lt;/HTML&gt;
         4          5 &lt;HTML&gt;Mexico City is big.&lt;/HTML&gt;