why i cannot make hole on the mesh?
I believe it's because of N-gon topoology.

It's a bug in Boolean modifier I think, but still.
I see 4 solutions:

Retopo your mesh so it contains only quads.
You can use Fast method of Boolean modifier. There's still an issue but less noticable:

Add a circle instead of a cylinder and use a Shrinkwrap modifier. You'll get a nice cut:

Use add-ons like BoxCutter. As I know, it deals with N-gons nicely. But the add-on is expensive :(