diff --git a/r/tests/testthat/test-dplyr-funcs-conditional.R b/r/tests/testthat/test-dplyr-funcs-conditional.R
index e60712e9e618c..48ebf037848b9 100644
--- a/r/tests/testthat/test-dplyr-funcs-conditional.R
+++ b/r/tests/testthat/test-dplyr-funcs-conditional.R
@@ -19,6 +19,7 @@ library(dplyr, warn.conflicts = FALSE)
 suppressPackageStartupMessages(library(bit64))
 
 skip_if_not_available("acero")
+skip_on_cran()
 
 tbl <- example_data
 tbl$verses <- verses[[1]]
diff --git a/r/tests/testthat/test-dplyr-funcs-datetime.R b/r/tests/testthat/test-dplyr-funcs-datetime.R
index d59356ad659ce..3e9f2024f9563 100644
--- a/r/tests/testthat/test-dplyr-funcs-datetime.R
+++ b/r/tests/testthat/test-dplyr-funcs-datetime.R
@@ -22,6 +22,7 @@ library(lubridate, warn.conflicts = FALSE)
 library(dplyr, warn.conflicts = FALSE)
 
 skip_if_not_available("acero")
+skip_on_cran()
 
 # base::strptime() defaults to local timezone
 # but arrow's strptime defaults to UTC.
diff --git a/r/tests/testthat/test-dplyr-funcs-math.R b/r/tests/testthat/test-dplyr-funcs-math.R
index 733a7c6ea0642..881e9aed94c16 100644
--- a/r/tests/testthat/test-dplyr-funcs-math.R
+++ b/r/tests/testthat/test-dplyr-funcs-math.R
@@ -18,6 +18,7 @@
 library(dplyr, warn.conflicts = FALSE)
 
 skip_if_not_available("acero")
+skip_on_cran()
 
 test_that("abs()", {
   df <- tibble(x = c(-127, -10, -1, -0, 0, 1, 10, 127, NA))
diff --git a/r/tests/testthat/test-dplyr-funcs-string.R b/r/tests/testthat/test-dplyr-funcs-string.R
index 0dc834dbfea16..fd03f74ea5977 100644
--- a/r/tests/testthat/test-dplyr-funcs-string.R
+++ b/r/tests/testthat/test-dplyr-funcs-string.R
@@ -17,6 +17,7 @@
 
 skip_if_not_available("utf8proc")
 skip_if_not_available("acero")
+skip_on_cran()
 
 library(dplyr, warn.conflicts = FALSE)
 library(lubridate)
diff --git a/r/tests/testthat/test-dplyr-funcs-type.R b/r/tests/testthat/test-dplyr-funcs-type.R
index 435fa5fcb87df..c1a0c8c180888 100644
--- a/r/tests/testthat/test-dplyr-funcs-type.R
+++ b/r/tests/testthat/test-dplyr-funcs-type.R
@@ -20,6 +20,7 @@ suppressPackageStartupMessages(library(bit64))
 suppressPackageStartupMessages(library(lubridate))
 
 skip_if_not_available("acero")
+skip_on_cran()
 
 tbl <- example_data
 
diff --git a/r/tests/testthat/test-dplyr-funcs.R b/r/tests/testthat/test-dplyr-funcs.R
index 48b74c9af43f1..1305191fd58f0 100644
--- a/r/tests/testthat/test-dplyr-funcs.R
+++ b/r/tests/testthat/test-dplyr-funcs.R
@@ -14,6 +14,7 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+skip_on_cran()
 
 test_that("register_binding()/unregister_binding() works", {
   fake_registry <- new.env(parent = emptyenv())