FWIW, though macros cannot be mapped, as others have mentioned, they can be manipulated with more macros, if you're willing to write them. This is Lisp, after all. :)
POC:
(defmacro my-use-packages (&rest packages)
"Ensure and defer PACKAGES using `use-package'."
(declare (indent defun))
(macroexp-progn
(mapcar (lambda (package)
`(use-package ,package :ensure :defer))
packages)))
(my-use-packages
2048-game
alert
async
regex-tool)
expands to
(progn
(use-package 2048-game :ensure :defer)
(use-package alert :ensure :defer)
(use-package async :ensure :defer)
(use-package regex-tool :ensure :defer))
Now, whether this pattern is actually worth the bother or benefits anyone is a different matter.