Hola:
Intentaré explicarlo...
PHP, como bien dices, es un lenguaje del lado del servidor. Esto significa que todas las instrucciones en un script se ejecutan
antes de presentar la página o sitio web al cliente (el cliente en este caso es el navegador - Firefox, Opera, IE, Google Chrome, etc.).
Javascript, en cambio, se ejecuta en el lado del cliente (ya definimos el "cliente) y realiza acciones directamente en el contenido de la página (llamado DOM) que se esta mostrando sin tener que enviar una petición al servidor. Además estos cambios son temporales, pues al recargar la página, todo lo modificado vuelve a su estado original (hay excepciones, pero toda excepción incluye una petición al servidor).
Si has utilizado el código que publicaste y revisas el código fuente (control + U), te darás cuenta que, en lugar de decir <input type="button" name="miboton" id="miboton" value="Botón" onclick="<?php echo 'HOLA MUNDO'; ?>" />, dice <input type="button" name="miboton" id="miboton" value="Botón" onclick="HOLA MUNDO" />. Esto esta bien, pues, como dije antes, las instrucciones en PHP se ejecutan en el servidor (antes de mostrar el contenido al cliente).
La forma correcta de hacerlo es así:
<!-- Los scripts Javascript van, generalmente, en el head -->
<script type="text/javascript">
function miFuncion() {
alert('Has hecho click en "miboton"');
}
</script>
<input type="button" name="miboton" id="miboton" value="Botón" onclick="miFuncion()" />
Esto otro también funcionaría:
<!-- Los scripts Javascript van, generalmente, en el head -->
<script type="text/javascript">
function miFuncion() {
alert('Has hecho click en "miboton"');
}
</script>
<input type="button" name="miboton" id="miboton" value="Botón" onclick="<?php echo 'miFuncion()'; ?>" />
Saludos.