We don't have a well-polished OS that can seamlessly transition from a single-app-at-a-time smartphone UI to a simultaneous multi-app desktop UI depending on the size of the screens attached. Windows 10 comes close in terms of the transitions and polish, but only scales down to a tablet interface, rather than smartphone. The Ubuntu attempts at this just severely lack polish when trying to use it as a phone.
On the hardware side, ARM is too limiting in terms of software availability, and x86 just doesn't have anything that fits in a smartphone power envelop and can also handle a much heavier workload when used as a typical workstation.
We're seeing some rapid progress on both fronts though, so I'm hopeful it won't be too long before someone finds the right formula.
I'm actually really surprised Apple hasn't gone down this road as it would be a really easy way to increase OS X market share if every iPhone suddenly became a Mac when plugged into a dock.