The lock held on the row during FETCH servers only one purpose: to support a positioned-update through cursor C1.
However, your cursor is not declared with the FOR UPDATE clause, so DB2 assumes a read-only cursor and then it doesn't have to hold any lock. If you use the FOR UPDATE clause, things work exactly as you expect, i.e. the UPDATE statement in session 2 will be blocked.
Fetching the record again using a scrollable cursor would require isolation level RS to get the exact same row. CS wouldn't guarantee that 2x fetching the same row will give the exact same values.