- Server migrations are more convoluted
- Security can be tricky to set up for multi-hop
- Non-SQL Server ones requires a local driver installed (Sybase, DB2 etc)
- Clusters, off-site DR: registry entries + drivers
- Non-SQL Server x64 woes. 'Nuff said
- Non-SQL Server ones don't play well (how many places to enter the password?)
- Performance (in other answers)
I've set up linked servers to Access, DB2, Oracle, Sybase and the odd proprietary ODBC driver. I'd prefer SSIS or .net code now...