Subversion doesn't use GNU diff to generate the diff. It has it's own implementation of diff (see the last paragraph of the section at the link). The internal diff implementation only has a few options as you can see from the output of svn help diff
:
-x [--extensions] ARG : Specify differencing options for external diff or internal diff or blame. Default: '-u'. Options are separated by spaces. Internal diff and blame take: -u, --unified: Show 3 lines of unified context -b, --ignore-space-change: Ignore changes in amount of white space -w, --ignore-all-space: Ignore all white space --ignore-eol-style: Ignore changes in EOL style -p, --show-c-function: Show C function name
You probably want to do svn diff --diff-cmd=/usr/bin/diff -x '--unified=40' my-file
so that Subversion will choose the external diff too at /usr/bin/diff
(or whatever path you want).
You can also configure Subversion to always use the external diff command through the configuration file. There is a section on using external diff and merge tools in the Subversion book.