When you call select, R will searche through the "search path" and will matche the first function called select. And when you try to call dplyr::select then you are calling it directly from the namespace dplyr so the function will work as expected.
Below is an example using conflicted. We will try to load the raster and dplyr, here both of them have a select function.
d <- data.frame(a = 1:10, b = 1:10)
Now when we try to call select we will be prompted with the exact conflict:
> select(d, a)
Error: [conflicted] `select` found in 2 packages.
Either pick the one you want with `::`
Or declare a preference with `conflict_prefer()`
* conflict_prefer("select", "raster")
* conflict_prefer("select", "dplyr")