If I do not do any data normailization, is datagen.fit required in Keras?
According to the comment of the documentation in the code:

# compute quantities required for featurewise normalization
# (std, mean, and principal components if ZCA whitening is applied)
datagen.fit(x_train)


It does the normalization, reducing mean and dividing by standard deviation, and more things like PCA. So it seems that you don't need to do normalization. That method does that, and normalizing features is required for accelerating training process and caring about all features with different scales the same.