I know that for the Hough Transform to work on an image, it needs to be a binary image. To convert from a grayscale image, an edge detection algorithm should be employed. I notice that people always use Canny edge detection instead of others (Sobel, etc). Why is that?
Canny Edge Detection is considered to be a better (In False Alarm sense) edge detection than those you mentioned.
This is, mainly, due to 2 steps:
- Non Maximum Suppression - Edges candidates which are not dominant in their neighborhood aren't considered to be edges.
- Hysteresis Process - While moving along the candidates, given a candidate which is in the neighborhood of an edge the threshold is lower.
Those 2 steps reduce the number of "False" edges and hence create a better starting point for farther process like Hough Transformation.
Your statement that the Hough transform (HT) needs to be applied on a binary image is not true. The original HT indeed was formulated that way, though in the meanwhile different authors extended the HT in numerous ways -- for example to consider the gray scale values of each image pixel. As a consequence, the step of edge detection can be omitted.
Citations concerning grey scale values taken from http://dx.doi.org/10.1109/JSEN.2014.2311160:
 F. O’Gorman and M. B. Clowes, “Finding picture edges through collinearity of feature points,” IEEE Trans. Comput., vol. 25, no. 4, pp. 449–456, Apr. 1976.
 J. Skingley and A. J. Rye, “The Hough transform applied to SAR images for thin line detection,” Pattern Recognit. Lett., vol. 6, no. 1, pp. 61–67, 1987.
 C. Trayner, N. J. Bailey, and B. R. Haynes, “Time-gradient Hough transforms–constraining object identification by speed of motion,” Real-Time Imag., vol. 6, no. 2, pp. 143–153, 2000.