Why would you use DCT as oppose to DFT for detecting oscillation in a signal? For my project, I needed to detect the primary oscillation frequency in a signal data. As I googled around, it turns out that DCT is the best tool to find this (http://www.mech.pku.edu.cn/robot/teacher/wangjiandong/WangHuangLu_ImprovedDCT_CEP_2013.pdf) 

My question is: why would you base the analysis on DCT, and not DFT? What would happen if I were to apply the same analysis but with DFT? I can't accept that DCT is "faster" since for the practice of detecting oscillation, even in real time, both are "fast enough" and so speed and computation complexity should not be a factor into deciding which to pick!
Just keepin' it $\Re$eal.

The DFT records the timing offset of a particular sinusoid frequency as the phase of the complex coefficient.  Since the DFT of a real signal is conjugate-symmetric, the corresponding negative frequency coefficient gets the same magnitude but negative phase.  FFT routines frequently skip calculating the negative spectrum for real signals.
This leaves NFFT/2+1 non-redundant complex coefficients, however the DC and Nyquist bins are completely real.  It would be possible to combine the DC and Nyquist bin together, making zero growth in data size (for even length signals anyway).

But this kind of flipping between Complex and Real structure may not be convenient for analysis or computation.

The DCT captures essentially the same information about the real signal, except the timing of the sinusoid is encoded as the sum of cosine waves.
The DCT has the advantage of representing a unitary transform without mixing real and complex numbers.  The DFT is also unitary, but it maps $\mathbb{R^N} \rightarrow \mathbb{C^N}$.