I2C-based communication is half-duplex communication and either the master or a slave is sending data at any given time, with the other merely receiving the data. Therefore, a single shift register is sufficient.
Receiving using I2C communication
While 3-wire serial communication can process sending and receiving simultaneously like a UART, the clock for communication is shared. The master and a slave output data at the same clock edge and fetch data at opposite edges. In other words, since the master and a slave operate at exactly the same timing, sending and receiving can be processed using a single channel (shift register).
Example of 3-wire serial communication (DAPmn=CKPmn=0)
In contrast, in full-duplex communication using a UART, receiving and sending operations occur completely independently. Consequently, two independent shift registers are required. As a result, a UART requires two channels.