Theres nothing inherently wrong with the code, I expect that you ran it, and succeeded to see your plot after all 
It would be interesting to see at what point the student is getting unexpected behaviour.
Can they head(gapminder) to prove they have some content there?
after having made p but before sending to ggplotly try submitting p to console, this should plot as a standard ggplot would.
Are the students aware to view their consoles to hunt for any warnings and errors when they get unexpected behaviour ?
If you have any doubts about the state of their installs and package versions, have them sessionInfo() and send you the results.
Sorry for not having a killer answer for you.
I've noticed your many contributions to the forum, and I doubt I've said anything you weren't aware of already, but I thought, just in case...