Runs code protecting the top of the stack. but I’m not sure what is meant by that.
DIP applies the sequence of instruction that follows it between braces to the stack below the top element. Similarly, DIIP will apply the sequence to the stack without its two topmost element etc. You can also think that you have two stacks, the fictitious one being used to hold the topmost elements of the real one until the sequence is over, then those elements are put back on top