If you're just attempting to join the two data frames, your call to left_join should look something like this:
df_lag2 <- df.post %>%
left_join(df.pre, by = c("customer_id", "month"), copy = FALSE) %>%
select(customer_id, month, kwh_lag)
It's hard to say for sure without seeing the data. If this doesn't solve your issue, maybe you could post a reprex?