The solution that I gave should be faster. Also, it allows you to set the group (thousand) separator correctly, if desired, and it will work in a BN8BSCII database, not only in an AL32UTF8 database. The disadvantage compared to your solution is that the explicit Bangla literal requires taking care of the encoding of the script that contains it. The recommended encoding is UTF-8 (AL32UTF8).
CREATE OR REPLACE FUNCTION ennumber2bnnumber (in_value NUMBER)
RETURN VARCHAR2 IS
BEGIN
RETURN TRANSLATE(TO_CHAR(in_value,'fm99G99G99G99G99G99G990D99',
'nls_numeric_characters=''.,'''),
'0123456789','০১২৩৪৫৬৭৮৯');
END;
/