The problem is that you are plotting by group (number of cylinders), but not weighting within those groups. So, the total weight for each cylinder will not add up to one, as it should for "true density".
Below I've separated out the steps to better show what I mean:
suppressPackageStartupMessages(library(tidyverse))
mtcars$cyl <- as.factor(mtcars$cyl)
myplot3 <- ggplot(mtcars, mapping=aes(x=cyl, y=drat, weights = qsec/sum(qsec)))+
geom_violin(scale = "count") +
labs(title="My plot",
x="Name",
y="Position")
myplot3
#> Warning in density.default(x, weights = w, bw = bw, adjust = adjust, kernel
#> = kernel, : sum(weights) != 1 -- will not get true density
#> Warning in density.default(x, weights = w, bw = bw, adjust = adjust, kernel
#> = kernel, : sum(weights) != 1 -- will not get true density
#> Warning in density.default(x, weights = w, bw = bw, adjust = adjust, kernel
#> = kernel, : sum(weights) != 1 -- will not get true density

mtcars_summary <- mtcars %>%
group_by(cyl) %>%
summarise(cyl_qsec = sum(qsec))
mtcars <- mtcars %>%
left_join(mtcars_summary, by = "cyl")
ggplot(mtcars, mapping=aes(x=cyl, y=drat, weights = qsec/cyl_qsec))+
geom_violin(scale = "count") +
labs(title="My plot",
x="Name",
y="Position")

Created on 2018-08-16 by the reprex package (v0.2.0.9000).