ご指摘のとおり、これは C#2.0 がオプションのパラメーターをサポートしていないためです。
回避策の 1 つは、既定のパラメーターを受け入れる通常の T-SQL ストアド プロシージャで .NET ストアド プロシージャをラップすることです。
例:
CREATE PROCEDURE TestProcWrapper
(
@TestIntWrapperParam int = null
)
AS
EXEC TestProc @TestInt = @TestIntWrapperParam
少し醜いですが、今のところは参考になるかもしれません。