Personally, I use evcxr [1] instead of rust-script for it's convenience as a REPL. If only they had come up with a better name... I have to look it up every time I want to launch it :)
From a superficial look, I would argue xshell is all about bringing shell-ergonomics into your rust-code, while your rust program maintains its traditional form.
rust-script seems to do nothing about your general rust-code, but make it more easily accessible in a (bash) shell-like context by altering the base form of your program to be more script-like.
They seem to complement each other really, and I don’t see why one would choose one over the other, as they apparently solve different problems. One might even use both at the same time?
[1]: https://github.com/google/evcxr