I'm not sure why the "standard" line types display poorly, especially the "dotted" one. However, you can use linetype codes to get more control over how the lines look.
ggplot(nc) +
geom_sf(linetype = "11", size = 1.5) +
theme_minimal()
ggplot(nc) +
geom_sf(linetype = "21", size = 1.5) +
theme_minimal()