Bare-metal generally refers to the situation where you have a computer, with it's processor, memory and peripherals but it has no software on it at all. It is "bare".
Typically we use machines that are already running an operating system. Like Linux or Windows or Android or many others. The OS provides functions for running programs and having those programs make use of keyboard, mouse, screen, disk, USB and all those other devices we have now a days.
But a bare-metal system has none of that. You have to find a way to get your code into the machine when it starts up. You code has to interface directly to all those hardware peripherals.
Bare-metal is often the case when using small micro-controllers. The Arduino being the most widely known of those. There are billions of others.
Some hardy people program things like the Rapberry Pi starting from bare-metal. It can be a great way to learn about building an operating system from scratch.
It's not something I have done much since the early 1980's when we were building our own computers from those 8 bit processors, like the Z80, 6502 and so on. Though I did once make a simple OS for the Intel 386 when that was a new thing.