The timestamp is updated when the data that represents the directory changes. A change in a subdirectory of directory D does not change anything in the representation of D because D only points to the subdirectory, not to what’s inside it. On the other hand, creating a file in D changes the block of data on disk that represents D.