Short distance bus travel is relatively easy as there are very many local buses connecting to different nearby towns all across Cuba.
For long-distance travel, Viazul and Astro are the main bus service providers.
Viazul
Viazul coaches are more luxurious and comfortable than Astro coaches.
Unlike Astro, you can easily book Viazul buses online on their website.
One thing I like about Viazul is that even if you're late to make your reservation they can give you a ride in a shared taxi for the same price as the bus.
The bus offers no refreshments but it stops along the way at restaurants for passengers to get meals.
Astro
The good thing about Astro is that it has more extensive coverage and goes to areas that are not covered by Viazul.
Astro buses are regular coaches with little luxury compared to Viazul, their prices are way lower also.
They are more common among Cubans, for foreign tourists securing a spot on these buses is difficult, it's considered illegal btw unless you are heading to an area not covered by Viazul. Some vendors may be simply willing to sell you a ticket, a good mastery of Spanish can also help in getting the vendor to sell you a ticket.
Foreign students studying in Cuba can take Astro buses but they must present their student IDs.