When a fenced stored procedure is run, it can use a fenced user to execute it in order to have less privileges for example at operating system level. Otherwise the fenced stored procedure is run by the same user account that is running DB2 agent.
In other words, by using a fenced user, you can ensure that certain type (fenced) procedures make no harm to the database since the privileges of a fenced procedure and user are typically much smaller.
For more info, see
NOT FENCED Stored Procedures[
^]