For the 2D discrete Gabor transform, why is it that we cannot use a set of orthonormal basis for its representation, instead we have to use frames for representing it?
The frames end up giving you an orthogonal representation, just not exactly a basis representation that you're talking about. Simply by definition that's not what a Gabor filter does. It's a time-frequency representation of your signal, while "orthogonal basis vectors" wouldn't have a time-specific property -- they stretch for as long as your signal stretches.
If you want to use orthogonal basis transforms, use Fourier, cosine, empirical mode decomposition and similar transforms.
If you want time-frequency representation, your can use short-time Fourier transform, wavelet transforms (of which Gabor can be considered a special case) and other similar transforms.