There is no point in spinning to wait for a resource in a uniprocessor system, because you will may as well switch threads sooner rather than later. Whereas on a multiprocessor system, a thread on another processor may release the lock without you context-switching. Spinlocks can be useful, then, if you don't expect to be waiting long, because it may be faster just to hang around until the other thread unlocks the thing. If you go to sleep on a mutex, you're basically assured some significant dead time before you will get rescheduled.
In short for the best case, a spin lock on a uniprocessor system will waste resources, slowing down the owner of the lock; in the worst case, it will deadlock the processor.