Raylib helps you draw stuff, play sound, and do the basics. But you're gonna be writing your own lighting/raytrace/pathfind/etc functions and it's ultimately going to take longer. The upside is if you need to do something very unique, all of the power to mske it reality is in your hands because Raylib isn't opinionated on how your game logic works and how it's packaged up. It's just the delivery guy to give the result to the user.
> if yes what are the things that raylib is missing that these engines have?
Asset management and import pipelines, rendering pipeline, loads of ready-to-go features like environments, baked lighting and global illumination, AO, reflections, particle systems, input mapping and event propagation, scripting, audio systems, GUI systems, and lots more.
Raylib is a library that you could use to build all that stuff, but otherwise it's a useful library, not a fully-featured game engine.
If you don't want a game engine and know exactly what you features you need and want to build only that, then Raylib is a great option.
If you don't want to write a global illumination system or asset management pipeline but would rather focus on creating gameplay, then a game engine is a good choice.
Unity and Unreal do anything most games will ever need and have massive ecosystems.
For example , Unity has built in physics , navigation, asset management, input handling, build systems, audio processing, etc.
Unreal has that and arguably more.
Godot is getting there, but still has growing pains. In larger projects things get weird.