Weird. I suspect because Round returns numeric of the same precision and scale as its input, and 10 won't fit into a numeric (2,1)
As a workaround:
select ROUND(CAST(9.5 AS Numeric(3,1)), 0)
Gail Shaw
Microsoft Certified Master: SQL Server, MVP, M.Sc (Comp Sci)
SQL In The Wild: Discussions on DB performance with occasional diversions into recoverability