"This" is in t1 and t2 in your example, so it get filtered out I guess. But yes you're right I missed something. setdiff will only filtered out from the first vector.
setdiff(c("a", "b"), c("b", "c"))
#> [1] "a"
So it may not be what you want or you need to run it with both sides.
Something like that
t1 <- "This is a test. Weather is fine"
t2 <- "This text is a test. This wuither is fine. This blabalba That "
t1 <- lapply(t1,tolower)
t2 <- lapply(t2,tolower)
s1 <- stringr::str_split(t1, stringr::boundary("word"))[[1]]
s2 <- stringr::str_split(t2, stringr::boundary("word"))[[1]]
purrr::flatten_chr(
purrr::map2(list(s1, s2), list(s2, s1), setdiff)
)
#> [1] "weather" "text" "wuither" "blabalba" "that"