Optimization profile and explain mode?
The REOPT(ALWAYS) option conflicts with the explain facility behaviour, because in this case the statement compilation is delayed until the bind variable value is known -- which is the whole point of reoptimization, isn't it. The manual says in particular:


  The REOPT bind option defers statement compilation from PREPARE to OPEN or EXECUTE time, when the input variable values are known. The values are passed to the SQL compiler so that the optimizer can use the values to compute a more accurate selectivity estimate. 


You are not providing the expected value, so compilation cannot proceed.

The EXPLAIN statement succeds I believe because it doesn't get to the re-optimization phase therefore not expecting a value for the bind variable. As a result, the plan it generates will probably differ from the reoptimized one.

You can address this by creating a global variable: CREATE VARIABLE myparm INT DEFAULT 5 (or whatever data type and value you need) and then referencing myparm in the statement where you have the parameter marker now. You will also need to create a new profile that matches the new statement text.

Tested and works on v11.1 but I assume the behaviour would be the same in 10.5.