Here's what you can start with. You said that the scale should be from 0 to 1, but in your example maximum is about 0.6, so I took that into consideration:
p <- ggplot(cm, aes(x=LB, y=DTI)) +
facet_wrap(~Method, ncol=3) +
geom_tile(aes(fill=CM), colour="white") +
theme_bw() +
coord_equal() +
xlab(xlab) +
ylab(ylab) +
ggtitle("Comparison of different methods based on composite metric")
# n equally placed breaks for n colours
n_breaks <- 10
br <- c(0, max(na.omit(cm$CM)))
split_interval <- function(v, n) seq(from=v[1], to=v[2], length.out=n)
p + scale_fill_gradientn(colours = rainbow(n_breaks),
na.value = "white",
breaks = split_interval(br, n_breaks))
Play a bit with breaks and number of colours to get the most suitable picture. Check the available palettes, the default hue should probably be more appropriate.