main reason is due to: CCD sensor vs film plane
in film body, the TTL gagetry works like this: light thru lens hits film plane and then hits the TTL sensor inside the camera body. electronic calculations are made while taking into account the film's surface reflectivity and etc
in digital body, the light however hits the CCD sensor surface. relectivity and other properties etc are different. so the same electronic calculations valid for proper flash exposure for film will now no longer be valid for digital. so they have to apply some modifications
thats why nikon has nonDX (can use functionally on digital but will lead to flash exposure errors) and DX (for digital, also can use on film) type of flashes.
for canon; ETTL is valid all over the place, provided u r using the newer type bodies (forgot whether is type A or B)
others pls correct me if im wrong. cheers