Are you looking for something like this?
library(dplyr)
#>
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#>
#> filter, lag
#> The following objects are masked from 'package:base':
#>
#> intersect, setdiff, setequal, union
library(ggplot2)
strikezone <- data.frame(x = c(-0.95, 0.95, 0.95, -0.95, -0.95),
z = c(1.6, 1.6, 3.5, 3.5, 1.6))
dataset <- data.frame(plate_x = c(1.5, -0.899, -0.1, -1, -0.85, -0.85, -0.1, 0, 0.5, -0.8, -1.01, -1.1, -0.5, -2, -0.4, -0.5, -0.61, -0.75, 0.61, 0, 0, 0.9, 0.4, -1, 1.15, 0.1, 0.2, -1.11, -0.5, -0.4),
plate_z = c(4.1, 1.61, 1.4, 2.5, 3.1, 3.2, 3.4, 2.9, 2.41, 3.15, 1.1, 1.6, 1.72, 2.1, 2.4, 3, 2, 3.75, 1.91, 2, 2.8, 1.6, 2.5, 1.6, 1.5, 3, 1.6, 1.4, 2.5, 1.9))
dataset %>%
mutate(is_x_in_zone = between(x = plate_x,
left = min(strikezone$x),
right = max(strikezone$x)),
is_z_in_zone = between(x = plate_z,
left = min(strikezone$z),
right = max(strikezone$z)),
is_point_in_zone = is_x_in_zone & is_z_in_zone) %>%
filter(is_point_in_zone) %>%
qplot(x = plate_x,
y = plate_z,
data = .) +
geom_path(data = strikezone,
mapping = aes(x = x,
y = z)) +
coord_equal(xlim = c(-1, 1),
ylim = c(1, 4))

Created on 2019-10-08 by the reprex package (v0.3.0)