Zero order hold interpolation and Nearest-neighbor interpolation?
Zero-order hold and nearest-neighbor interpolation are conceptually the same thing; when extending the original dataset to cover new data points, you are just picking a value in the same area of the signal to use as the interpolant, instead of something more sophisticated.
The main difference I could see between the two is that zero-order hold is usually used in the context of interpolation of a 1-D signal, particularly to describe the action of a digital-to-analog converter. In that model, the zero-order hold is usually rendered as starting at the corresponding sample time $n$ and extending until the next sample instant $n + 1$.
Nearest-neighbor interpolation is usually drawn somewhat differently, where the region of influence of a particular sample is centered on the sample position, so instead of the value being held from sample times $n$ to $n + 1$, that sample value would instead influence the interpolated output from $n - 0.5$ to $n + 0.5$.