Although there are many similarities, here are some key differences between the two (other than one is cloud and the other on-premise).
- APS data loading has a tool called dwloader.exe for high speed loads
- SQL DW loading recommendation is through polybase (external tables from Blob Storage or Azure Data Lake)
- APS Scaling is done through adding capacity.
- SQL DW Scaling is done dynamically and also offers pause to reduce cost
There are some additional internal differences such as the way Replicated tables are implemented and the fixed number of distributions in SQL DW.
As for when one is better than another, I would say the main reason would be either cloud or on-premises. Cloud is a managed instance with new features and patches regularly updated. Dynamic scale and Pause/Resume are also very nice features to reduce cost.