This is just a result of the fact that .NET 4.0 was the first version of .NET that supported portable libraries, and we didn't have time to make the "ViewModel" types (ICommand, ObservableCollection, etc) portable.
The technical reason is that the types are in System.Windows.dll on Silverlight, but they were in a WPF assembly (PresentationCore.dll I think) in the .NET Framework. In .NET 4.5 we added a version of System.Windows.dll to the .NET Framework with type-forwards to the right place.