The values are loaded into the registers at falling edge, so the calculation is done based on previous values, and then the new values are updated, which are used in next clock pulse.
So basically the values in z3z2z1z0 will be delayed by 2 clock pulses (reason already explained in above comments) and hence we have 0000 for first two rows and from 3rd row onwards we have the correct sum corresponding to A0B0, A1B1 and so on.
Reason for delay:-
initially all three registers have values as 0
At 1st clock, at falling edge of 1st clock pulse, R0 will be updated with the values of A0 (i.e. a2a1a0) and B0(i.e. b2b1b0), R1 and R2 will still have 0s. So, R2 will produce output as 0000 because it is taking values from R1 which is still having 0s.
At 2nd clock, at falling edge, R1 will be updated with the values of R0 so R1 will now have results corresponding to A0B0. R0 will receive the next set of inputs i.e. A1B1. R2 will still receive the previous value of R1 and will produce 0000
At 3rd clock, at falling edge, again R0, R1 will be updated accordingly as explained above. But now R2 will also receive the values corresponding to A0B0 and will produce the output for A0B0 – 1011
Like this, it will continue.
If you try to analyse the exact values of each register in each clock and then produce the output, then it will be very confusing because they will contain different values corresponding to different inputs – it will be hard to keep track of them. However, once you understand the working and come to the conclusion that output produced is delayed by 2 clock pulses then it can be solved easily