GPL can be considered too free, forcing to to release your source code when you don't want to. This may not be desirable for some people, especially some companies, so they prefer non-GPL software.
A real application of this is using a GPL piece of software in a much larger project (like a library). This would mean you would have to release the entire project as GPL, even if you don't want to release other parts as GPL. This is where things like LGPL and dual-licensing can come in, allowing you the 'freedom' to release your code with the license you want.