Bare metal refers to not using an rtos. I know that sounds weird but it is an industry convention. It does not refer to the language.
Compiled Rust code that relies on syscalls will not function on a “bare metal” microcontroller.
Rust's only requirement is that memcpy, memmove, memset, memcmp, bcmp, and strlen are available, and it can provide them if needed: https://github.com/rust-lang/compiler-builtins