I'm not sure when this started, but I've tried with the devel version of knitr and the issue persists: setting knitr::opts_chunk$set(message = FALSE) suppresses figure captions when the output is PDF.
---
title: "Untitled"
date: "7/29/2021"
output: pdf_document
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE, message = FALSE)
```
```{r test, fig.cap=caps}
library(ggplot2)
caps <- c("another caption", "and yet an other")
qplot(1:5)
qplot(6:10)
```
And it is important for me to have message=FALSE to suppress messages such as
`stat_bin()` using `bins = 30`. Pick better value with `binwidth`.