If I convert the start and end columns to POSIXct using the lubridate column, I get a plot that looks as I would expect.
library(ggplot2)
library(lubridate)
#>
#> Attaching package: 'lubridate'
#> The following objects are masked from 'package:base':
#>
#> date, intersect, setdiff, union
library(readr)
activities <- read_csv("~/R/Play/Dummy.csv")
#> Rows: 54 Columns: 3
#> -- Column specification --------------------------------------------------------
#> Delimiter: ","
#> chr (2): start, end
#> dbl (1): shift
#>
#> i Use `spec()` to retrieve the full column specification for this data.
#> i Specify the column types or set `show_col_types = FALSE` to quiet this message.
activities$start <- dmy_hm(activities$start)
activities$end <- dmy_hm(activities$end)
activities$shift <- factor(activities$shift)#,
#levels = activities$shift[nrow(activities):1])
plot_gantt <- qplot(ymin = start,
ymax = end,
x = shift,
colour = shift,
geom = "linerange",
data = activities,
size = I(5)) +
coord_flip() +
theme_bw() +
theme(panel.grid = element_blank()) +
xlab("") +
ylab("") +
ggtitle("Intreruption")
plot_gantt

Created on 2021-12-24 by the reprex package (v2.0.1)