I had the same question so I'll give you my understanding of things. "Pre-calculating" gives you a fixed set of inputs to a new model.
In this case, the new model is a Sequential object with, first, a maxpooling layer, which represents the previous convolutional layers, then a couple new dense layers with 0 dropout, followed by a final dense 'softmax' layer which gives us the cat vs. dog categories.
If we don't pre calculate, but instead make convolutional layers non-trainable, the images get passed through all the convolutional layers to get an input to the dense layers, but the weights in the convolutional layers are not updated.
This is important because with data augmentation, you are basically creating new images and they should be evaluated (but, not necessarily used for training on the convolution layers).