Because the CurrentPoint property stores x, y, and z all together in a single matrix, the CurrentPoint cannot reflect the mixed datetime, duration, and numeric data that may be present in the plot. Therefore, CurrentPoint always stores the numeric equivalent.
As Sebastian pointed out, you need to convert from numeric to datetime, but there is actually an easier (and documented) way to do this conversion: num2ruler (and the corresponding ruler2num).
ax(1) = subplot(121); DT = datetime(2001:2010, 1:10,1); plot(DT, rand(length(DT),1)); grid on
ax(2) = subplot(122); grid on DT = datetime(2018,2,3,4,5,12:.2:15); plot(DT, rand(length(DT),1)); grid on
set(ax(1),'ButtonDownFcn',@(hax,e) disp(num2ruler(hax.CurrentPoint(1),hax.XAxis))) set(ax(2),'ButtonDownFcn',@(hax,e) disp(num2ruler(hax.CurrentPoint(1),hax.XAxis)))