This works fine - it is possible to make the signature explicit for variable "str_arr" :
fn main() {
let str_arr: [String; 3] = core::array::from_fn(|_| "bb".to_string());
println!("{:?}", str_arr); // ["bb", "bb", "bb"]
}
similar question: How to spell a signature for iter().chain()?