How exactly slow is digitalRead()?

Try it !
Perhaps the other cycle is loading the constant for a byte to read/write to the port.