Does executing the exact same command from the command line work when you run it as the openhab user?
I don’t use speed-dispatcher, but I do know that executeCommandLine can be a bit tricky when it comes to spaces and quotes. You could try something like this in your rule (replace space by @@ and/or use and escape double quotes):
val result = executeCommandLine("/usr/bin/spd-say@@-y@@anna@@\"Attention!\"", 5000)
Also, what is returned when you run spd-say from a command line? The empty result string might be normal behaviour.