Both continuous-time and discrete-time signals generally have a continuous spectrum. Only periodic signal have a discrete spectrum. You might be familiar with the Fourier series, which is just a frequency-discrete representation of a periodic signal. There is also a Fourier series representation of discrete-time periodic signals, which is of course also discrete in frequency.
The discrete Fourier transform (DFT) is basically a Fourier series representation of a finite length discrete-time signal, which is thought of as periodically continued outside its support. The actual spectrum of the finite-length signal is continuous in frequency, and the DFT computes equidistant samples of this frequency-continuous spectrum.
The DFT can be used to compute discrete approximations to the continuous-time as well as the discrete-time Fourier transforms, both of which are continuous in frequency. The DFT is used so frequently, because we have efficient algorithms for its computation. These algorithms are called Fast Fourier Transform (FFT) algorithms.