I don't as much hate UI work as I hate some UI frameworks. E.g. I've been programming .NET for >10years. The frameworks for creating web applications are great (ASP.NET WebForms and ASP.NET MVC). But the frameworks for writing desktop applications, well, I'm not fond of them (WinForms and WPF).
So in this respect, writing GUI applications is more an aspect of using frameworks I don't like.
There is another aspect. I often work with "enterprise"-style applications, i.e. applications where a desktop application needs to receive data from a server. In this case, there are so many layers of conversion of data from one format to another that it gets really really boring.
E.g. the application receives information through a series of DTO objects. The application then creates it's own model representation of the data (not reusing the same domain classes that were created on the server). The model classes are consumed by a view model (in a WPF MVVM pattern), that exposes the properties on the model.
That is a lot of times that the same data is represented by different classes. And that gets boring. But this is a problem specific to this type of desktop application.
There are also interesting challenges in this type of application, such as how do we get changes from one client to update immediately on another client.