A juzgar por el error que te sale, parece ser que has metido en el datatable un System.Drawing.Bitmap. Eso es un objeto de .NET y no lo entiende el ReportViewer. Requiere que le pases una columna de tipo "array de bytes" que contenga dentro los
bytes de la imagen en el mismo formato en que los encontraría si hubieses salvado ese Bitmap a un fichero en disco.
Aquí tienes un ejemplo en el que cargan un dataset y pasan la imagen al ReportViewer:
https://www.c-sharpcorner.com/blogs/display-image-in-rdlc-report-microsoft-report-viewer1
Fíjate que en ese ejemplo se trata de una aplicación web y la imagen la toma desde los bytes que han enviado en un FileUpload (que envía los bytes "en bruto" desde el fichero de imagen). Tendrías que ver desde dónde has tomado tus imágenes y conservar
los bytes en lugar de (o además de) meterlos en un bitmap. O, si eso no es posible, entonces tendrías que hacer un bucle recorriendo todos tus bitmaps y convirtiendo cada uno en un array de bytes (usando el método Save hacia un MemoryStream).