The front & back view of this speaker is shown in below.
OK. That is a standard mini loudspeaker, not a piezo.
This speaker will generate certain frequency sound (not the beep sound) when I feeding in certain frequency to Arduino Board from Simulink block (Matlab).
What do you mean, a "certain frequency sound (not the beep sound)"? If you feed it a signal at a fixed frequency, that
will sound like a beep.
Since the speaker is not generating beep sound, then am I correct if I using digital output pin connect to LM386 first and then LM386 connect to speaker so that the speaker able to generate the amplified sound based on signal of digital output pin?
That type of speaker has a low impedance (8Ω) and must be driven from a low-impedance source, otherwise it will be barely audible. The LM386 does provide the low-impedance source for it, and it is an acceptable way to drive it, but (a) there are other ways of driving it that will produce more volume, if you need it, and (b) the LM386 is designed to reproduce an audio signal that includes subtleties, such as voice, music, etc, not just a simple rectangular wave signal at one frequency. It
can reproduce that type of signal though.
I assume, from the oscilloscope waveforms, that your power supply is 5V. If so, your design in post #1 is probably OK and doesn't need any changes. It doesn't matter that the LM386 is operating at a gain of 200, although that's not necessary, and you can remove C2 to simplify the circuit.
With such a large input signal, its output will just swing hard to its maximum and minimum voltage, as long as the input bias is right. Check that the signal at the output of the LM386 swings over a DC voltage range of at least 3V. For example, the low output voltage is below +1V and the high output voltage is above +4V. If so, your circuit is OK.