Because they think there's a memory problem - SQL Server uses all of the memory available to it, up to its max memory setting (and even beyond.) Unknowing folks go into Task Manager, see SQL Server using a lot of memory, and think, "There must be a memory leak - I'll stop and restart SQL Server, and see what happens." Sure enough, that frees up a lot of memory (because SQL Server doesn't allocate it all right away by default), so they think they fixed the bug. Next thing you know, they're restarting SQL Server weekly.
Because they think there's a CPU problem - queries will use a ton of CPU resources, especially in the case of parameter sniffing issues. Unknowing folks try to connect into the SQL Server without knowing about the Dedicated Admin Connection (DAC), be unable to connect, and just run out of options. They restart because the executives are standing behind them, wanting a solution fast.
Because they've heard it fixes corruption - when folks run into a corruption issue, they're often willing to try anything to fix it.
Because they want a rollback to finish - they kill a query, and it sticks in rollback for a while because they didn't know rolling back a query is single-threaded. After minutes (or hours) of waiting, they restart the SQL Server, thinking the rollback won't be necessary when it starts back up again. Sadly, they're wrong, and SQL Server just keeps right on going with the rollback upon startup.