We can use initrd for Linux kernels 2.4 and lower. Conversely, initramfs is for kernels 2.6 and above.
Since on all modern system initial filesystem is tmpfs sometimes it is confused and initramfs is called initrd (for example: in grub to load initramfs you use initrd command).
There seems to be an actual technical difference, in the kernel, between an initrd and an initramfs. An initrd is apparently mounted like a normal file system, it's just in RAM instead of a backed by a block device. An initramfs is a tmpfs into which a (usually cpio) archive is extracted into. The initramfs apparently would be preferable generally, because the kernel understands that it's a ramdisk, whereas with an initrd it would go through the block device layer, which would mean it would use more ram: If you read a file from an initrd, the kernel would copy the file to ram (unnecessarily, since it's already in ram) like it would for a filesystem on disk, but for a tmpfs/initramfs, it understands it doesn't need to do that.
From a user's perspective there is no significant functional difference I don't think, and I don't think this relevant to OP's question, that probably has more to do with the userspace tools.
In Linux systems, initrd (initial ramdisk) is a scheme for loading a temporary root file system into memory, to be used as part of the Linux startup process. initrd and initramfs (from INITial RAM File System) refer to two different methods of achieving this. Both are commonly used to make preparations before the real root file system can be mounted.
As i said 2 different things, initrd was used to create a ramdisk, a block device. Initramfs basically directly offers a filesystem instead of a block device.