Other possibilities might be to mimic adding two histograms, as you did, or using frequency polygons instead. I'll use @FJCC's defintions of DF1 and DF2, to illustrate.
The first results in one histogram obscuring the other:
DF1 <- data.frame(A = rep("Dat1", 20), Value = rnorm(20))
DF2 <- data.frame(A = rep("Dat2", 20), Value = rnorm(20, 0.5, 1))
library(ggplot2)
ggplot() +
geom_histogram(aes(Value, y = ..density.., fill = 'DF1'), data = DF1) +
geom_histogram(aes(Value, y = ..density.., fill = 'DF2'), data = DF2)
#> `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
#> `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

By changing the transparency of the bars, this might be improved, or you could add position = "dodge" as @FJCC does. Frequency polygons allow for a different kind of visibility:
ggplot() +
geom_freqpoly(aes(Value, y = ..density.., color = 'DF1'), data = DF1) +
geom_freqpoly(aes(Value, y = ..density.., color = 'DF2'), data = DF2)
#> `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
#> `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

Created on 2020-02-23 by the reprex package (v0.3.0)